Що дозволяє роль db_owner


15

Я намагався усунути логін, який не в змозі переглянути певні таблиці в базі даних SQL Server 2012. Роблячи це, я знаю, я не зовсім розумію, що дозволяє членство в db_ownerролі. Я можу зрозуміти інші ролі, такі як, db_datareader and db_datawriterале я залишаюся розгубленим щодо того, що db_ownerдозволяє.

Відповіді:


15

Будь ласка, дивіться посилання на BOL для ролей на базі даних :

db_owner

Члени ролі бази даних db_owner з фіксованою базою даних можуть виконувати всі дії з налаштування та обслуговування в базі даних, а також можуть скидати базу даних .

Найпростіший спосіб переглянути всі дозволи - це використовувати sys.fn_my_permissions()функцію. Спочатку переконайтесь, що ви член db_owner:

select
    rol.name
from sys.database_principals mem
inner join sys.database_role_members drm
on drm.member_principal_id = mem.principal_id
inner join sys.database_principals rol
on drm.role_principal_id = rol.principal_id
where mem.principal_id = user_id();

Тепер перерахуйте всі ефективні дозволи бази даних:

select *
from sys.fn_my_permissions(null, 'database');

Це повинно бути досить детальним для ваших цілей. Щось зауважимо, sys.fn_my_permissions()повертає ефективні дозволи, тому думайте про це як про агрегацію.


Чи означає це, що користувач, який має db_ownerчленство, має за замовчуванням ті ж дозволи, що db_readerі db_writer?
черв'як

5
Член db_ownerфіксованою ролі бази даних буде мати SELECT, INSERT, UPDATEі DELETEдозвіл на доступ до бази даних. Серед багатьох інших дозволів, але так, це правильно.
Томас Стрінгер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.