為資料庫建立對庫只讀使用者sqlserver
阿新 • • 發佈:2018-12-30
在保密單位,可能在第三方稽核單位要求下會要讀取部分資料,這時候需要給他們單獨建立一個使用者防止意外或故意修改資料,sqlserver下可以對其進行簡單的設定。
首先建立使用者,以下是伺服器角色和使用者對映的設定。
設定好之後,就可以達到對整個資料庫的只讀控制,這裡用了datareader角色,表示只讀,為了以防萬一,我附加了denydatawriter角色,防止增刪改操作。
效果如下:
另外,如果要控制到表上的話,這裡引用一下網上找到的
- --先建立測試庫test_tmp
- --根據現有的表建立兩張表
-
SELECT TOP 100 * INTO test_tab1 FROM mistest_09428.dbo.squarer;
- SELECT TOP 100 * INTO test_tab2 FROM mistest_09428.dbo.squarer;
- --建立角色
- _exec sp_addrole 'test_role1' ;
- --分配select的許可權給角色test_role1
- GRANT SELECT ON test_tab1 TO test_role1;
- GRANT SELECT ON test_tab2 TO test_role1;
- --add登陸dap570,密碼dap570,預設庫為test_tmp
-
_exec sp_addlogin 'dap570','dap570','test_tmp';
- --給dap570新增帳戶test
- _exec sp_grantdbaccess 'dap570','test'
- --將角色test_role1分配給text
- _exec sp_addrolemember 'test_role1','test';
- --over
- --換dap570來登入資料庫test_tmp
- --然後測試
- /*
- DELETE FROM test_tab1
- INSERT INTO test_tab1(ingotno) VALUES('2222')
- UPDATE test_tab1 SET ingotno = '3333'
- */