SQL問題彙編(2)

來源:互聯網
上載者:User
問題 還有其它值得提到的新特性嗎?


我們還增加了DENY語句,可以被管理員用來禁止某個使用者對一個對象的所有存取權限。在SQL
Server 6.5中你可以在一行上運行兩次REVOKE語句來在某種程度上仿效DENY語句。



在SQL Server 7.0中,如果你想阻止某人查看某一個表,你可以使用DENY來禁止他的SELECT許可權。使用DENY語句時應當非常小心。舉個例子:假如你在AUTHORS表上有SELECT和INSERT的許可權,而且作為某個NT組的成員,你還擁有UPDATE許可權。然而,你所在的另一個NT組被DENY語句禁止了INSERT和UPDATE許可權。結果是,你只有SELECT許可權了。DENY語句會禁止對資料庫物件的訪問,因此你要確保沒有對PUBLIC組使用DENY語句,因為任何使用者都總是PUBLIC組中的成員。許多沒有經驗的管理員這樣做了,然後他們只好打電話來向我們求助。



DENY不僅可以用於資料庫物件,它還可以用於登入名稱。例如,你授予了NT組“domain
users”登入到SQL Server的許可權。Joe剛剛被解僱了但是他還不知道。你不能簡單地使用REVOKE語句來取消Joe的登入許可權,因為他沒有被單獨授予登入許可權,而是和其他成員一起作為“domain
users”組中的一個成員被一起授予登入許可權。這時你就可以特別地對Joe使用DENY語句。這樣他不能登入到SQL
Server了,而同一個組的其他成員仍然可以。


應用程式角色是如何工作的?


可能解釋應用程式角色的最好方式是在實際情況中說明。比方說你想做一個職工工資單的應用程式,可以允許使用者更新工資。當然你不希望允許使用者簡單地登入到SQL
Server中然後更改工資。如果僱員能夠那樣做的話,他就可能試圖去更改他自己的工資了。更合適的方法是使用一個工資單應用程式,它能夠執行特定的安全檢查,例如,不允許使用者更新他們自己的工資。



它是這樣工作的。你的工資單應用程式以使用者的安全層級登入到SQL
Server,以便伺服器審計追蹤工具能夠知道到底是誰在登入到SQL Server。然後你的應用程式切換到適當的資料庫並調用系統預存程序“sp_setapprole”來啟動應用程式角色。應用程式角色是受密碼保護的,所以你需要把密碼作為參數傳遞給sp_setapprole。當資料在網上傳輸時,你也可以對密碼進行加密。



一旦啟動了應用程式角色,使用者現有的許可權被關閉,應用程式角色的安全許可權被相應開啟。你的應用程式現在就可以使用應用程式角色來執行修改資料庫的操作了。



需要注意的一個問題是,應用程式角色是特定於串連的。假如你同時開啟了兩個到SQL
Server的串連,你必須保證每個連線應用程式程式角色都被開啟了。使用應用程式角色時,一旦開啟串連並轉換到適當的資料庫後,第一件事情就是調用“sp_setapprole”預存程序。如果不啟動應用程式角色,你就不能夠訪問任何應用程式角色所專有的資料。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。