Укажите максимальное количество баз данных, которыми может владеть пользователь - PullRequest
0 голосов
/ 02 сентября 2010

Возможно ли это?

Я хотел бы иметь ограничение для пользователя, скажем, 5 баз данных.

Поэтому, когда он пытается выполнить запрос CREATE для создания 6-го исключенияброшен.

Ответы [ 2 ]

3 голосов
/ 02 сентября 2010

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

Самое близкое, что вы можете получить со стандартными функциями SQL Server, будетчтобы создать триггер DDL для CREATE DATABASE, и в этом триггере проверьте, не принадлежит ли текущему пользователю пять баз данных, и в этом случае пусть триггер не выполнит операцию.

Что-то вроде этого(взято из TechNet образец ):

CREATE TRIGGER ddl_trig_database 
ON ALL SERVER 
FOR CREATE_DATABASE 
AS 
    -- here, check to see if current user already owns five databases
    -- and if so, fail the trigger by using RAISERROR
GO
1 голос
/ 02 сентября 2010

посмотрите на триггеры DDL, с помощью триггера, подобного этому, вы можете перехватить инструкцию CREATE DATABASE

CREATE TRIGGER ddl_trig_database 
ON ALL SERVER 
FOR CREATE_DATABASE 
AS 
    --do something here
    -- select count(*)from sys.sysdatabases where sid = ???
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...