2012-04-03 27 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' 
相關問題