SQL Server 2005: права доступа типа - Control

SQL Server 2005: права доступа типа - Control

  • Comments 1
  • Likes

Знаете ли Вы что

 

В SQL Server 2005 возможно дать пользователю права доступ типа Control к объекту (таблице, виду и т.д.), который фактически дает те же права, что и у собственника объекта.

 

Пример:

GRANT CONTROL

ON t_Table TO Uesr1

GO

 

Control имеет некоторые особенности.

Обычно цепочка предоставлений прав доступа к объекту пользователями всегда хранится, на случай, если в дальнейшем эти права будут отменены с использованием опции Cascade.

 

Например:

1. пользователь User1 дал права доступа типа Select к объекту Table пользователю User2;

2. права пользователя User1 по доступу к объекту Table были отменены с использованием опции Cascade;

3. в результате User2 также лишился прав доступа к объекту.

 

С Control ситуация выглядит иначе.

 

Пример:

 

1.владелец объекта дал права доступа к объекту типа Control пользователю User1 с использованием опции GRANT OPTION;

2.пользователь User1 дал права доступа типа Control пользователю User2;

3.права пользователя User1 по доступу к объекту были отменены с использованием опции Cascade;

4.пользователь User2 по-прежнему имеет права Control на объект.

 

Grant Control on T

to usr1

WITH GRANT OPTION

go

 

Execute as user = 'usr1'

go

 

Grant Control on T

to usr2

go

 

REVERT

go

 

Revoke Control on T

from usr1 Cascade

go

 

--Usr2 по-прежнему имеет права Control на T

 

Как обойти эту ситуацию

Если требуется, чтобы права Control были отменены у всех пользователей, которым их дал User1, User1 должен быть явно указан в момент предоставления прав другому пользователю:

 

Grant Control on T

to usr2

as usr1

go

Comments
  • Cпасибо за интересное замечание,

    оно навело меня на определенные мысли:

    правильно ли будет сказать, что в общем случае, если user имеет effective permission CONTROL на объект, то разрешения на этот объект , данные им другим user'ам , будут фактически выданы от владельца этого объекта (то есть , в поле grantor будет указан owner этого объекта)???

    Если так, то почему, кстати??

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment