Microsoft SQL Server
Разрешения базы данных
Поиск…
замечания
Основной синтаксис:
{GRANT| REVOKE | DENY} {PERMISSION_NAME} [ON {SECURABLE}] TO {PRINCIPAL};
- {GRANT | REVOKE | DENY} - То, что вы пытаетесь сделать
- Грант: «Дайте это разрешение заявленному руководителю»
- Отменить: «Удалите это разрешение от заявленного принципала»
- Запретить: «Удостоверьтесь, что у указанного принципала никогда не было этого разрешения (т.
DENY SELECT
«DENY SELECT
»означает, что независимо от каких-либо других разрешенийSELECT
не удастся для этого принципала)
- PERMISSION_NAME - операция, на которую вы пытаетесь повлиять. Это будет зависеть от надежности. Например, для хранимой процедуры
GRANT SELECT
не имеет смысла. - SECURABLE - имя того, на что вы пытаетесь повлиять на разрешения. Это необязательно . Вызов
GRANT SELECT TO [aUser];
вполне приемлемо; это означает «для любого защищаемого, для которого имеет значение разрешениеSELECT
,GRANT
это разрешение». - ПРИНЦИП - для кого вы пытаетесь повлиять на разрешения. На уровне базы данных это может быть роль (приложение или база данных) или пользователь (например, для входа в систему или нет).
Изменение разрешений
GRANT SELECT ON [dbo].[someTable] TO [aUser];
REVOKE SELECT ON [dbo].[someTable] TO [aUser];
--REVOKE SELECT [dbo].[someTable] FROM [aUser]; is equivalent
DENY SELECT ON [dbo].[someTable] TO [aUser];
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
--implicitly map this user to a login of the same name as the user
CREATE USER [aUser];
--explicitly mapping what login the user should be associated with
CREATE USER [aUser] FOR LOGIN [aUser];
СОЗДАТЬ РОЛЬ
CREATE ROLE [myRole];
Изменение членства в ролях
-- SQL 2005+
exec sp_addrolemember @rolename = 'myRole', @membername = 'aUser';
exec sp_droprolemember @rolename = 'myRole', @membername = 'aUser';
-- SQL 2008+
ALTER ROLE [myRole] ADD MEMBER [aUser];
ALTER ROLE [myRole] DROP MEMBER [aUser];
Примечание. Ролевые элементы могут быть любыми принципами уровня базы данных. То есть вы можете добавить роль в качестве члена в другую роль. Кроме того, добавление / удаление членов роли является идемпотентным. То есть попытка добавления / удаления приведет к их присутствию / отсутствию (соответственно) в роли независимо от текущего состояния их членства в ролях.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow