Что позволяет роль 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разрешение на доступ к базе данных. Среди многих других разрешений, но да, это правильно.
Томас Стрингер