2012-04-03 21 views
0

我想知道什么样的权利应给予SQL Server用户的asp.net网站考虑以下标准我的生活asp.net sql server应该给予什么权利?

SQL Server用户

应该能够做到

  • 从表
  • 阅读
  • 插入表格
  • 更新行
  • exe可爱的SP,UDF

不应该能够

  • 删除任何表中
  • 从表中删除任何记录
  • 删除任何存储过程,UDF或任何其他程序
  • 创建新表
  • 创建新的sp,udf,触发器,索引等
  • 改变任何表
  • 改变表中的列
  • 改变任何SP,UDF,触发器,索引等
  • 任何其他危险的东西
+0

你的名单已经确定你想给的权利,所以你审查权限的文档中的SQL Server - 尤其是GRANT命令 - 和你尝试过这么远吗? – Pondlife 2012-04-03 13:17:50

回答

1

创建一个用户,然后应用下面的脚本替换USERNAME与您的SQL用户。这将生成您应该需要的所有脚本!

--STORED PROCS 
    select 'GRANT EXECUTE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects 
    INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
    where type = 'P' 

--TABLES 
select 'GRANT SELECT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects 
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
where type = 'U' 

--TABLES 
select 'GRANT INSERT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects 
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
where type = 'U' 


--TABLES 
select 'GRANT UPDATE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects 
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
where type = 'U' 


--FUNCTIONS 
select 'GRANT EXECUTE ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO USERNAME' as SQL from sys.objects 
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
where type = 'FN' 


--VIEWS 
    select 'GRANT SELECT ON [' + sys.schemas.name + '].[' + sys.objects.name +'] TO dardsfp' as SQL from sys.objects 
INNER JOIN sys.schemas ON sys.schemas.schema_id = sys.objects.schema_id 
where type ='V' 
相关问题