日期:2014-05-17  浏览次数:20394 次

SqlServer 禁止登录用户进行的操作问题

--授予tony对具有创建表、视图、存储过程等的操作权限
GRANT CREATE TABLE,CREATE VIEW,CREATE PROC TO tony 
--禁止tony对具有创建表、视图、存储过程等的操作权限
DENY CREATE TABLE,CREATE VIEW,CREATE PROC TO tony

像上面的语句一样, 可以禁止数据库tony登录名用户 对数据库进行 创建表视图 存储过程操作。
哪位还知道 怎么禁止创建触发器,索引, 已经对应的授权行为
sqlserver 数据库

------解决方案--------------------
CREATE TRIGGER connection_limit_trigger
ON ALL SERVER 
FOR Create_trigger
AS
BEGIN
IF ORIGINAL_LOGIN()= 'login_test' 
    ROLLBACK;
END;

------解决方案--------------------
好像,sql sever没办法防止某个登录不能创建触发器,只能通过服务器级别的触发器,或者数据库级别的触发器,来限制用户在创建触发器是报错,无法创建成功:

   
--建立服务器级别触发器   
create trigger gyy_server  
on all server  
for create_table,create_view,create_procedure,create_index,create_trigger
as  
  
if ORIGINAL_LOGIN() = 'tony'
begin   
   rollback;
   Raiserror('你没有权限创建触发器!',16,-1)
end
go  

--接下来用tony登陆后create trigger,就会报错的