Db_owner rolü neye izin verir


15

Bir SQL Server 2012 veritabanındaki belirli tabloları görüntüleyemeyen bir oturum açma sorununu gidermeye çalışıyorum. Bunu yaparken db_ownerroldeki üyeliğin neye izin verdiğini tam olarak anlamıyorum . Gibi diğer rolleri anlayabiliyorum db_datareader and db_datawriterama neye db_ownerizin verdiği konusunda kafam karışıyor .

Yanıtlar:


15

Lütfen Veritabanı Seviyesinde Roller için BOL referansına bakın :

vt_sahibi

Db_owner sabit veritabanı rolünün üyeleri, veritabanındaki tüm yapılandırma ve bakım etkinliklerini gerçekleştirebilir ve veritabanını bırakabilir .

Tüm izinleri görmenin en kolay yolu sys.fn_my_permissions()işlevi kullanmaktır . İlk olarak aşağıdakilerin üyesi olduğunuzu doğrulayın 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();

Şimdi tüm etkin veritabanı izinlerini listeleyin:

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

Bu, amaçlarınız için yeterince ayrıntılı olmalıdır. Dikkat edilmesi gereken bir şey sys.fn_my_permissions(), etkili izinleri döndürür , bu yüzden bir toplama olarak düşünün.


Bu, db_ownerüyeliği olan kullanıcının varsayılan olarak db_readerve ile aynı izinlere sahip olduğu anlamına db_writermı gelir?
webworm

5
Bir üyesi db_ownersabit veritabanı rolü olacaktır SELECT, INSERT, UPDATEve DELETEveritabanı izinleri. Diğer birçok izin arasında, ama evet, bu doğru.
Thomas Stringer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.