2009-08-21 84 views
1

有什麼辦法可以讓用戶從SQL Server隱藏存儲過程?隱藏存儲過程

+0

? – mezoid 2009-08-21 06:47:23

+1

什麼版本的SQL服務器?模式可能是你想要的。 – 2009-08-21 06:47:55

回答

2

你可以加密存儲過程的文本,如果這是你的意思。

CREATE PROCEDURE my_procedure 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT * 
    FROM my_table 
END 

加密不是牢不可破的,但至少它是第一道防線。

+0

加密存儲過程也是防止程序員(或自我)動態調整事情的好方法,而不是更新源腳本等。:-) – 2009-08-21 07:08:30

3

對於SQL Server 2005及更高版本,請不要授予他們權限。然後,"Metadata visibility"表示它不可見並且不可運行。想要隱藏它們但授予它們權限是沒有意義的。

注意:db_owners和syadmins將始終看到它們。

否則你唯一的選擇是加密存儲過程,如上所述(這很容易被免費工具擊敗)。來自所有用戶或特定用戶的