1. 程式人生 > >為資料庫建立對庫只讀使用者sqlserver

為資料庫建立對庫只讀使用者sqlserver

在保密單位,可能在第三方稽核單位要求下會要讀取部分資料,這時候需要給他們單獨建立一個使用者防止意外或故意修改資料,sqlserver下可以對其進行簡單的設定。

首先建立使用者,以下是伺服器角色和使用者對映的設定。

設定好之後,就可以達到對整個資料庫的只讀控制,這裡用了datareader角色,表示只讀,為了以防萬一,我附加了denydatawriter角色,防止增刪改操作。

效果如下:

另外,如果要控制到表上的話,這裡引用一下網上找到的

  1. --先建立測試庫test_tmp  
  2. --根據現有的表建立兩張表  
  3. SELECT TOP 100 * INTO test_tab1 FROM mistest_09428.dbo.squarer;  
  4. SELECT TOP 100 * INTO test_tab2 FROM mistest_09428.dbo.squarer;  
  5. --建立角色  
  6. _exec sp_addrole 'test_role1' ;  
  7. --分配select的許可權給角色test_role1  
  8. GRANT SELECT ON test_tab1 TO test_role1;  
  9. GRANT SELECT ON test_tab2 TO test_role1;  
  10. --add登陸dap570,密碼dap570,預設庫為test_tmp  
  11. _exec sp_addlogin 'dap570','dap570','test_tmp';  
  12. --給dap570新增帳戶test  
  13. _exec sp_grantdbaccess 'dap570','test'  
  14. --將角色test_role1分配給text  
  15. _exec sp_addrolemember 'test_role1','test';  
  16. --over  
  17. --換dap570來登入資料庫test_tmp  
  18. --然後測試  
  19. /*  
  20. DELETE FROM  test_tab1  
  21. INSERT INTO test_tab1(ingotno) VALUES('2222')  
  22. UPDATE test_tab1 SET ingotno = '3333'
  23. */