Sql Server資料庫物件存取權限控制

來源:互聯網
上載者:User

標籤:

以下內容主要針對database層面的資料存取權限(比如select, insert, update, delete, execute…)

1.直接給user許可權
GRANT EXECUTE TO [user]

2.通過role 控制許可權,把user加入role中,繼承Role所擁有的許可權
GRANT EXECUTE TO [Role]
ALTER ROLE [Role] ADD MEMBER [Member]

3.通過app role的方式訪問資料庫
Application Role 是資料庫層級的Role,不包含任何user,不能直接在資料庫中使用,只能通過應用程式串連資料庫使用。

Application Role不能和前面兩種方式同時生效,如果某個login已經有資料庫對應的User,而且賦予了相應的許可權,但登入以後又啟用了Application Role,那麼這個login的security context就會切換到Application Role的security context,也就是只有Application Role的許可權起作用。

需要注意的是在應用程式中啟用了Application role之後,要訪問其他的資料庫只能用Guest account,鑒於Guest account被很多DBA視為眼中釘肉中刺,想用Application Role的還是請三思。

4.Sp 的 execute as XX
這是一種較為推薦的方式,可以在最小的粒度上控制許可權。
這種方法就像領了尚方寶劍,比如 A是sp1的owner,sp1定義為 execute as owner,然後B有sp1的執行許可權,那麼B執行sp1的時候就擁有了A的所有許可權,有效期間到sp1執行結束。

類似的用法還有execute as caller/self/”username”/”loginName”. 預設情況,如果sp不寫execute as 語句,用的是execute as caller.

5.Owned schema
Schema作為資料庫中對象的集合,也可以用來控制許可權,通過給使用者賦予schema的許可權,就同時賦予了schema包含的所有table,view,sp的許可權。
可以在賦予schema許可權之後,再在對象層級(table,view…)修改存取權限,最終以對象層級的許可權為優先。

 

Sql Server資料庫物件存取權限控制

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.