⑴ sql SERVER普通用戶需要什麼許可權才能執行sp
1. 具有執行xp_cmdshell 許可權的登錄 USE master; GO -- 1.a. 建立登錄 CREATE LOGIN Cmd_Login WITH PASSWORD = N'Pwd.123', CHECK_POLICY = OFF; GO -- 1.b. 這個登錄是內置的, 不允許登錄, 這樣可以減少安全隱藏 DENY CONNECT SQL TO Cmd_Login; GO -- 1.c. 因為要調用xp_cmdshell , 所以在master 中要有用戶, 並具有許可權 CREATE USER Cmd_Login FOR LOGIN Cmd_Login WITH DEFAULT_SCHEMA = dbo; GRANT EXECUTE ON sys.xp_cmdshell TO Cmd_Login; GO -- 2. 用戶資料庫 USE tempdb; GO -- 2.a 為執行xp_cmdshell 許可權的登錄建立用戶 CREATE USER Cmd_Login FOR LOGIN Cmd_Login WITH DEFAULT_SCHEMA = dbo; GO -- 2.b 測試存儲過程 CREATE PROC dbo.p WITH EXECUTE AS N'Cmd_Login' -- 指定存儲過程的執行時的上下文 AS EXEC master.sys.xp_cmdshell 'dir c:\' GO -- 3. 調用存儲過程的普通登錄 USE master; GO -- 3.a 登錄 CREATE LOGIN test WITH PASSWORD = N'abc.123', CHECK_POLICY = OFF; GO -- 3.b 資料庫用戶 USE tempdb; GO CREATE USER test FOR LOGIN test; GO -- 3.c 執行存儲過程的許可權 GRANT EXECUTE ON dbo.p TO test; GO -- 3.d 執行測試 EXECUTE AS LOGIN = N'test'; GO EXEC dbo.p; GO REVERT; GO -- 4. 刪除測試 DROP PROC dbo.p; DROP USER test; DROP USER Cmd_Login; USE master; DROP LOGIN test; DROP USER Cmd_Login; DROP LOGIN Cmd_Login;補充說明多數情況下,資料庫的所有者是 sa一類的 sysadmin固定伺服器角色的成員,所以在這種情況下,也可以直接指定使用資料庫所有者作為存儲過程執行的安全上下文。-- 2. 用戶資料庫 USE tempdb; GO -- 2.b 測試存儲過程 CREATE PROC dbo.p WITH EXECUTE AS N'dbo' -- 指定存儲過程的執行時的上下文 AS EXEC master.sys.xp_cmdshell 'dir c:\' GO -- 3. 調用存儲過程的普通登錄 USE master; GO -- 3.a 登錄 CREATE LOGIN test WITH PASSWORD = N'abc.123', CHECK_POLICY = OFF; GO -- 3.b 資料庫用戶 USE tempdb; GO CREATE USER test FOR LOGIN test; GO -- 3.c 執行存儲過程的許可權 GRANT EXECUTE ON dbo.p TO test; GO -- 3.d 執行測試 EXECUTE AS LOGIN = N'test'; GO EXEC dbo.p; GO REVERT; GO -- 4. 刪除測試 DROP PROC dbo.p; DROP USER test; USE master; DROP LOGIN test;使用前述方法的時候,實例中需要有 xp_cmdshell代理帳戶(默認是沒有的),否則會收到下面的錯誤信息。
⑵ SqlServer 資料庫的存儲過程許可權怎麼設置,只讓用戶查看存儲過程,不讓用戶修改添加刪除存儲過程怎麼做
用ORACLE就可以輕松實現這個安全管理,但是sql server 就不明了 可以嘗試查看SQL SERVER對於許可權的分類的文檔,sql server幫助裡面應該有,用沒有那種只能看不能修改和刪除的操作的許可權
⑶ sql2008新建用戶XKY,如何給它創建、修改、查看、執行存儲過程的許可權
GRANT CREATE,MODIFY,SELECT,EXECUTE ON dbo.procname TO XKY; //所有許可權。
⑷ SQLServer 怎麼設置可以讓某用戶只可以執行存儲過程而不能直接select存儲過程涉及的表
windows登錄sql,設置登錄名許可權,只grant授予他Execute的許可權就可以了
⑸ SQL Server 怎麼向資料庫角色添加執行、修改系統存儲過程等的許可權
一般直接在安全性裡面手工添加
⑹ 在sqlserver系統許可權管理中,屬於存儲過程的相應許可權是
sqlserver 2000 新建存儲過程的方法:一、這里以「學生庫」為例,為「學生庫」創建一個存儲過程。①首先啟動企業管理器,打開資料庫,將焦點置於「存儲過程」項上。然後,單擊滑鼠右鍵。②在快速菜單中,選擇「新建存儲過程」,彈出「存儲過程編輯窗口」。二、在創建存儲過程中注意下列幾點:1、不能將 CREATE PROCEDURE 語句與其它 SQL 語句組合到單個批處理中。2、創建存儲過程的許可權默認屬於資料庫所有者,所有者可將此許可權授予其他用戶。3、存儲過程是資料庫對象,其名稱必須遵守標識符規則。4、只能在當前資料庫中創建存儲過程。
⑺ sql 用戶許可權只能執行存儲過程
用system登錄,創建新用戶,然後只grant授予他create procere的許可權就可以了,自己試試,用SQL命令建立一下。
⑻ 在SQL SERVER 2005中如何給某個用戶分配執行存儲過程的許可權
打開 management studio,選擇要操作的資料庫-->安全性-->用戶,選擇用戶,右擊,屬性-->安全類型->添加許可權-->特定類型的所有對象,選擇 存儲過程,點擊確認後,分配可以分配的 許可權,有 control\alter\exeute etc.。之前要創建好用戶,並給予登錄的許可權。
⑼ 如何給用戶賦予資料庫內的存儲過程的執行許可權
把別的資料庫的用戶成員添加到當前數據的角色里,應該別的資料庫就可以和當前資料庫的許可權是一樣的。你可以試試。