web-dev-qa-db-ja.com

ロールdb_ownerは何を許可しますか

SQL Server 2012データベースの特定のテーブルを表示できないログインのトラブルシューティングを行っています。その際、db_ownerロールのメンバーシップで何が許可されているのかがよくわかりません。 db_datareader and db_datawriterなどの他の役割は理解できますが、db_ownerが何を許可するかについて混乱しています。

15
webworm

データベースレベルの役割の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()effective権限を返すため、これを集約と見なします。

15
Thomas Stringer