Предоставить пользователю все определенные разрешения для базы данных - PullRequest
0 голосов
/ 17 апреля 2019

Это дословный вопрос: предоставить все определенные разрешения для базы данных cis605 cis605_usr

Я прочитал, что синтаксис "GRANT ALL" устарел и предоставляет только разрешения ANSI-92, применимые к объекту (https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-object-permissions-transact-sql?view=sql-server-2017).

Если я запускаю этот запрос, я вижу разрешения, уже назначенные пользователю, но мне нужно увидеть разрешения базы данных:

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc, 
                pr.authentication_type_desc, pe.state_desc, 
                pe.permission_name 
FROM sys.database_principals pr
JOIN sys.database_permissions pe 
  ON pe.grantee_principal_id = pr.principal_id
WHERE pr.name = 'cis605_usr';

Этот запрос возвращает разрешения, но я не вижу имя_получениятакие как INSERT, UPDATE, DELETE, ect ... или имя / идентификатор базы данных:

SELECT * FROM sys.database_permission;

Как мне найти все разрешения базы данных и предоставить пользователю все разрешения базы данных?

1 Ответ

2 голосов
/ 17 апреля 2019

INSERT, UPDATE, DELETE и т. Д. - это разрешения уровня объекта, а не разрешения базы данных.Вы можете назначить пользователя роли базы данных (например, db_owner, db_datawrite и т. Д.), Чтобы предоставить эти разрешения на более высоком уровне.Если вы хотите, чтобы они могли делать все в базе данных, назначьте им разрешения db_owner.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...