SQL Server許可權問題

tolywang發表於2009-07-10

查詢許可權使用者  :    exec sp_helprotect @username = 'test'         

sysobjects  表中各欄位的意義 。 

  • C檢查約束。
  • D預設的約束
  • F外來鍵約束
  • L日誌
  • P儲存過程
  • PK主鍵約束
  • RF複製過濾儲存過程
  • S系統表格
  • TR觸發器
  • U用於表格。
  • UQ獨特的約束。
  • V檢視
  • X被擴充套件的儲存過程

 

 

1 賦予jrzsfc_mx對所有表select,insert,update,delete許可權
  DECLARE   ACUR   CURSOR   FOR  
  SELECT   name  FROM   SYSOBJECTS   WHERE   TYPE='U'  
   
  DECLARE   @NAME   VARCHAR(100)  
  DECLARE   @SQL   VARCHAR(512)  
  OPEN   ACUR  
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
  WHILE   @@fetch_status=0  
  BEGIN  
  EXEC   ('grant select,insert,delete,update ON  ['+   @NAME+']   TO jrzsfc_mx;')  
   
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
   
  END  
   
  CLOSE   ACUR  
  DEALLOCATE   ACUR

 


2 賦予jrzsfc_mx對所有procedure execute許可權,剔除系統儲存過程
  DECLARE   ACUR   CURSOR   FOR  
  SELECT   name  FROM   SYSOBJECTS   WHERE   TYPE='P' and name not like 'dt%'
   
  DECLARE   @NAME   VARCHAR(100)  
  DECLARE   @SQL   VARCHAR(512)  
  OPEN   ACUR  
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
  WHILE   @@fetch_status=0  
  BEGIN  
  EXEC   ('grant    execute   ON  ['+   @NAME+']  TO jrzsfc_mx;')  
   
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
   
  END  
   
  CLOSE   ACUR  
  DEALLOCATE   ACUR

3 賦予jrzsfc_mx對所有函式execute許可權
  DECLARE   ACUR   CURSOR   FOR  
  SELECT   name  FROM   SYSOBJECTS   WHERE   TYPE='FN'
   
  DECLARE   @NAME   VARCHAR(100)  
  DECLARE   @SQL   VARCHAR(512)  
  OPEN   ACUR  
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
  WHILE   @@fetch_status=0  
  BEGIN
   
  EXEC   ('grant execute ON ['+   @NAME+' ]  TO jrzsfc_mx;')  
   
  FETCH   NEXT   FROM   ACUR   INTO   @NAME  
   
  END  
   
  CLOSE   ACUR  
  DEALLOCATE   ACUR

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-608847/,如需轉載,請註明出處,否則將追究法律責任。

相關文章