Немного о фиксированных ролях

ПУБЛИКАЦИИ  

По материалам статьи Энди Уоррен на SWYNK.COM «SQL Permissions: More about the Fixed Roles»

В предыдущих своих статьях Энди уже рассмотрел применимость ролей Public и DataReader/DataWriter, а также те сложности, которые могут у Вас возникнуть при их применении. В этой статье автор обсуждает фиксированные роли.

DB_AccessAdmin
Эта роль предоставляет права добавлять или удалить пользователей для определенной базы данных. Энди пишет, что члены этой роли не могут выполнять sp_adduser, но зато им доступна sp_dropuser. Хорошей практикой является использование sp_grantdbaccess и sp_revokedbaccess, которые прекрасно работают. Эта роль может воздействовать только на уже существующие логины, и не может создавать новые. Запуск sp_dbfixedrolepermission покажет список разрешений, которые установлены для этой роли:
Db_accessadmin      Sp_addalias
Db_accessadmin      Sp_dropalias
Db_accessadmin      Sp_dropuser <
Db_accessadmin      Sp_grantdbaccess
Db_accessadmin      Sp_revokedbaccess

DB_SecurityAdmin
Эта роль предоставляет право управлять разрешениями, владельцами, и ролями - но только для тех логинов, которым уже был предоставлен доступ к базе данных. Хотя Энди считает возможности этой роли полезными, но сам он предпочитает назначать группы NT в роли SQL сервера, а затем управлять разрешениями путём добавления/удаления пользователей в группы NT. Вот список разрешений от sp_dbfixedrolepermission:
Db_securityadmin      DENY
Db_securityadmin      GRANT
Db_securityadmin      REVOKE
Db_securityadmin      Sp_addapprole
Db_securityadmin      Sp_addgroup
Db_securityadmin      Sp_addrole
Db_securityadmin      Sp_addrolemember
Db_securityadmin      Sp_approlepassword
Db_securityadmin      Sp_changegroup
Db_securityadmin      Sp_changeobjectowner
Db_securityadmin      Sp_dropapprole
Db_securityadmin      Sp_dropgroup
Db_securityadmin      Sp_droprole
Db_securityadmin      Sp_droprolemember

DB_BackupOperator
В BOL говорится, что пользователи, которые являются членом этой роли, могут делать резервные копии, плюс DBCC и Checkpoint. Checkpoint работает, а DBCC автору статьи заставить работать под этой ролью не удалось. Если Вы посмотрите на результат работы sp_dbfixedpermission, представленный ниже, то увидите, что в этом списке на DBCC разрешения нет. Энди не уверен в том, что эта роль будет иметь широкое применение, так как большинство DBA выполняет резервирование через задания по расписанию. Для восстановления резервной копии Вам потребуются разрешения роли DB_RestoreOperator, хотя Энди считает, что восстанавливать удобнее под ролью DBCreator или SYSADMINS.
Db_backupoperator      BACKUP DATABASE
Db_backupoperator      BACKUP LOG
Db_backupoperator      CHECKPOINT

DB_DDLAdmin
Эта роль предоставляет разрешение своим членам только на запуск DDL. Это полезно для разработчиков, которые изменяют схемы или если Вы хотите разрешить пользователям иметь собственные объекты. Имейте только в виду, что эти объекты будут принадлежать им, а не DBO (если Вы не используете sp_changeobjectowner до запуска этих объектов в промышленную эксплуатацию). В BOL сказано, что члены этой роли не могут выполнять Grant, Deny, или Revoke, но Энди убедился, что члены этой роли МОГУТ управлять разрешениями для объектов, владельцами которые они являются.
Db_ddladmin      All DDL but GRANT, REVOKE, DENY
Db_ddladmin      Dbcc cleantable
Db_ddladmin      Dbcc show_statistics
Db_ddladmin      Dbcc showcontig
Db_ddladmin      REFERENCES permission on any table
Db_ddladmin      Sp_changeobjectowner
Db_ddladmin      Sp_fulltext_column
Db_ddladmin      Sp_fulltext_table
Db_ddladmin      Sp_recompile
Db_ddladmin      Sp_rename
Db_ddladmin      Sp_tableoption
Db_ddladmin      TRUNCATETABLE

DB_Owner
Члены этой роли имеют все разрешения в базе данных. Но необходимо помнить, что объекты, созданные членами этой роли, будут принадлежать создавшему их пользователю, а не DBO (например, andy.testtable, а не dbo.testtable) - если пользователь также не входит в роль sysadmins. Что бы поменять собственника, нужно выполнить:

sp_changeobjectowner 'объект', 'dbo'


Перевод: Александр Гладченко  2001г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz