在數據庫應用中,我們有些時候需要給某些用戶單一的視圖、存儲過程或者表等相關對象的訪問權限,以便某些應用的調用,同時也不會讓其訪問到我們核心應用庫的數據,同時防止其做一些破壞性的操作。
以下邊是在sql server 2005上給某用戶單一視圖訪問的權限的過程。(某接口開發的記錄)
/* 創建用戶 */ USE [master] GO CREATE LOGIN [tb_test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO USE [tb_test] GO CREATE USER [tb_fy1] FOR LOGIN [tb_test] GO
/* 創建需要的視圖 */ CREATE VIEW vw_test AS select ******
--授予權限 grant select on talbeName to tb_test --授予表talbeName的訪問權限 grant select on vw_test to tb_test --授予視圖vw_test訪問權限 grant execute on procName to tb_test --授予存儲過程procName執行權限
以上的操作執行後,我們即可以將用戶tb_test交付給客戶使用,我們需要讓客戶訪問那些權限即採取上述的授權方式即可。當然,這樣也可以更加清晰的權限分配。
當然,如果此類用戶較多,可以考慮使用role來管理權限。