2015-01-14 2 views
0

У нас есть база данных SQL Server 2012 с сочетанием «стандартных» и «административных» пользователей.DENY CREATE разрешений на схему dbo

Стандартные пользователи имеют свои собственные схемы. Пользователи-администраторы могут создавать объекты в схеме dbo.

Я бы хотел, чтобы стандартные пользователи не создавали объекты в рамках схемы dbo - и заставляли их создавать объекты под своими собственными схемами. Тем не менее, стандартным пользователям также необходим доступ к объектам, уже находящимся в схеме dbo, но они не должны изменять или удалять их.

Есть простой способ сделать это по линии:

DENY CREATE TABLE on SCHEMA::dbo 
DENY CREATE VIEW on SCHEMA::dbo 
DENY CREATE PROCEDURE on SCHEMA::dbo 

Спасибо за указание мне в правильном направлении.

ответ

0

Я просто сделал выборочную проверку на CREATE TABLE и CREATE PROCEDURE, но я подозреваю, что все объекты ведут себя таким образом:

Требует CREATE разрешения TABLE в базе данных и разрешения ALTER на схема, в которой создается таблица.

(акцент мой). Таким образом, вы должны просто установить простой DENY ALTER ON SCHEMA::[dbo] to [some principal here], чтобы предотвратить их создание или удаление объектов.

Изменение существующих объектов сложнее, поскольку вам не нужны какие-либо разрешения для собственной схемы, чтобы изменить объект. Но, если у них нет каких-либо альтернативных разрешений для (например) процедуры, они не смогут это сделать по умолчанию.

Смежные вопросы