我創建了一個C#應用程序,它讀取一個配置文件,獲取連接字符串,併爲每個連接字符串讀取存儲過程列表以供進一步處理。 現在,我正面臨一些權限問題。在開發應用程序時,我正在使用具有dbo級別用戶的連接字符串。現實生活中的連接字符串是SQL用戶只DataReader的和datawriter權限,但是當我執行數據庫訪問權限問題(sql server 2008)
select user_name(uid) as owner, name from dbo.sysobjects where type='P' order by name asc
獲得使用這樣的用戶特效列表,該查詢返回任何記錄(雖然它返回的特效,如果我以dbo身份執行)
出於安全原因,我不想爲連接字符串中的用戶提供額外的權限,所以我的問題是 - 只有具有datareader/datawriter權限的用戶如何獲取存儲的特效列表,或者如果不可能,用戶必須擁有訪問該信息的最低權限是什麼?
我使用SQL Server 2008
作爲預留每個存儲過程:SQL Server 2005上最多,我會使用'sys.procedures'而不是棄用的「sysobjects」。請參閱sysobjects上的MSDN文檔:http://msdn.microsoft.com/en-us/library/ms177596.aspx – 2010-02-05 21:49:08