指定用户可以拥有的最大数据库数

时间:2010-09-01 21:48:01

标签: tsql sql-server-2008

这可能吗?

我希望对用户有一个限制,比方说5个数据库。

因此,当他尝试发出CREATE查询以创建第6个异常时,会抛出异常。

2 个答案:

答案 0 :(得分:3)

不,你不能这样做 - 至少不是以声明的方式(只是简单地指定每个用户拥有的最大数据库数)。

使用标准SQL Server功能最接近的是为CREATE DATABASE创建DDL触发器,并在该触发器中检查当前用户是否已拥有五个数据库,在这种情况下,请让触发操作失败。

有些事情(取自TechNet sample):

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 :(得分:1)

查看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