2015-10-26 46 views
-1

有誰知道有沒有辦法讓應用程序(連接到SQL Server)對數據庫進行SQL查詢,但限制用戶使用SQL Server Management直接訪問數據庫工作室?在沒有帳戶的情況下在SQL Server上執行查詢

對不起,我知道這聽起來很混亂,但我這樣問的原因是因爲在工作中,我使用的應用程序允許我輸入數據並將其上傳到數據庫。我假設預定義的INSERT sql腳本被加載到應用程序中,但是當我登錄到SQL Server Management Studio時,它根本不會讓我使用INSERT語句。我想知道爲什麼和如何這樣的應用程序可以編程?

有關這方面的任何信息或內容將不勝感激。

感謝

+8

如果沒有帳戶,則無法訪問數據庫。如果您不希望最終用戶在數據庫上擁有直接登錄權限,則可以爲您的應用程序創建專用帳戶。該應用在用戶的BEHALF上使用該帳戶。 –

+4

可能您的應用程序使用特定的Sql Server用戶,當您使用Sql Server Management Studio登錄時,您正在使用具有不同權限的其他用戶。 – Steve

回答

1

既然你能夠訪問通過SSMS的數據庫沒有錯誤,該帳戶可以明顯地訪問數據庫。但是,權限將僅限於直接或通過角色成員身份授予該帳戶的權限。

如果您使用的是同一個帳戶,並且您的臨時INSERT失敗並且訪問被拒絕錯誤,則很可能應用程序正在使用存儲過程來插入數據。當存儲過程用於數據訪問時,調用帳戶需要對存儲過程執行權限,但不需要對基礎表執行權限。只要所有權鏈不間斷,就不會評估間接引用對象的權限。

有關所有權鏈的更完整說明,請參閱https://technet.microsoft.com/en-us/library/ms188676%28v=sql.105%29.aspx

相關問題