一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SQL數(shù)據(jù)庫安全性

 WindySky 2018-02-25

       許多Windows系統(tǒng)管理員,還兼職著微軟SQL Server數(shù)據(jù)庫管理員(DBA)的身份。另一方面,企業(yè)將許多機密的信息存儲到了SQL Server數(shù)據(jù)庫中。作為一名DBA新手,則需要了解SQL Server的安全模式和如何配置其安全設(shè)置,以保證“合法”用戶的訪問并阻止“非法”訪問。而在SQL Server中登陸、用戶、角色、權(quán)限提供了對數(shù)據(jù)庫訪問的權(quán)限,接下來在數(shù)據(jù)庫安全性上著重分析它們的關(guān)系。

 

●      安全層次和驗證模式

     

      一、安全層次

        SQL Server支持三級安全層次。在我們登陸到SQL Server時,其實我們是經(jīng)過了三步的驗證。

      第一層次是用戶提供正確的賬號和密碼登錄到SQL Server,或者已經(jīng)成功登陸了一個可以映射到SQL Serverwindows賬號。但是在SQL Server登陸并不意味著能夠訪問數(shù)據(jù)庫,而是要經(jīng)過第二層次的驗證。

      第二層次的權(quán)限允許用戶與一個或多個數(shù)據(jù)庫相連,這一層次的實現(xiàn)要在數(shù)據(jù)庫對象的用戶中綁定登陸賬戶。

      第三個層次的安全權(quán)限允許用戶擁有對指定數(shù)據(jù)庫中的對象的訪問權(quán)限,例如:可以指定用戶有權(quán)使用哪些表和視圖、運行哪些存儲過程。在第一層次中的windows賬號,其實是在我們裝機時給windows指定的自己登陸到windows系統(tǒng)的賬號,而作為windows系統(tǒng)管理員的我們其實也兼職了SQL Server的管理權(quán),那我們?nèi)绾卧O(shè)置才能保證只有我們指定的用戶才能訪問SQL數(shù)據(jù)庫呢?就是我們下面要說的驗證模式。

    二、SQL登陸驗證模式

                                                             

       

        SQL的登陸驗證模式有兩種,一種是Windows的驗證模式,另一種是WindowsSQL Server混合驗證模式。如果我們選擇windows模式登陸并把windows賬號映射到SQL Server的登陸上,那么合法的windows用戶也就連接到了SQL Server中。

        Windows模式的登陸需要在SQL Server中設(shè)置。方法:

                   打開SQL Server企業(yè)管理器,找到安全性文件夾,打開后再登陸中新建一個windows身份驗證模式的賬戶。需要注意的是在新建賬戶時,賬戶的名稱一定要填我們windows賬戶的名字,如:我的計算機在用戶中名稱為張信秀,則在填名稱時一定要填張信秀。

                                                                   

          SQL Server的驗證模式相對windows的登陸模式在設(shè)置上沒有特別的要求,只需填上我們的密碼即可。

         接下來進入我們的重點——角色、權(quán)限,首先我們在圖上來區(qū)分。

 

  登陸、權(quán)限、角色

         在往下說之前我們先介紹下安全賬戶。返回到安全層次上來說,賬戶在登錄到SQL Server后,如果想獲得訪問某個數(shù)據(jù)庫的權(quán)限,是必須要在SQL中獲得安全賬戶的,確保登陸的賬號是安全的,就好比是我們出國的護照簽證一樣,想要去哪個國家必須獲得該國家的簽證和出入境章,這個安全賬戶就是在數(shù)據(jù)庫對象的用戶中綁定一個登陸賬號,證明這個登陸賬號是安全的。

         賬戶、角色、權(quán)限他們?nèi)呤菦]有嚴格的關(guān)系的,如果有的話就是角色給賬戶分配職能,而權(quán)限卻又限制著角色和賬戶對數(shù)據(jù)庫的操作。它們?nèi)呔秃孟袷枪纠锏膯T工、職權(quán)、規(guī)章,公司按照職能分配不同的員工,但是每個員工卻又受到公司規(guī)章的限制。

      一、數(shù)據(jù)庫角色

          數(shù)據(jù)庫角色控制著數(shù)據(jù)庫的安全性。當(dāng)最終用戶成功地連接到分析服務(wù)器之后,會在那個服務(wù)器上的數(shù)據(jù)庫角色中查找最終用戶的用戶名,來確定用戶對數(shù)據(jù)庫的可能操作。

              數(shù)據(jù)庫角色在創(chuàng)建時有兩種:

                       1、標準角色:不允許嵌套,在使用時只需在安全賬戶中添加,通過分配權(quán)限確保了用戶能夠進行的操作;

                       2、應(yīng)用程序角色:為了讓標準角色嵌套,來控制角色所能進行的操作,創(chuàng)建后SQL Server把它當(dāng)做賬戶看待(因為它是應(yīng)用程序級別的),它的作用是為權(quán)限提供相應(yīng)的加密,用存儲過程sp_setapprole激活才可進行授予權(quán)限的操作。

  二、權(quán)限

               權(quán)限有三種類型,

                         1、語句權(quán)限:限制對表update、insert等的操作,在創(chuàng)建角色時或添加安全用戶后設(shè)置;

                         2、對象權(quán)限:限制用戶對數(shù)據(jù)庫對象的創(chuàng)建,在數(shù)據(jù)庫屬性內(nèi)設(shè)置;

                         3、暗示性權(quán)限:SQL Server數(shù)據(jù)庫自帶的那些角色或用戶,如:服務(wù)器角色、數(shù)據(jù)庫所有者(dbo)等擁有的權(quán)限,不需要了解他,因為它是系統(tǒng)自己設(shè)置的用戶不能夠設(shè)置。

           最后我們在代碼中應(yīng)用下三者:

 

  1. /*示例說明:在數(shù)據(jù)庫company中創(chuàng)建一個擁有表product的所有權(quán)限、擁有表employees的SELECT權(quán)限的角色rtest隨后創(chuàng)建了一個登錄ltest,然后在數(shù)據(jù)庫company中為登錄ltest創(chuàng)建了用戶賬戶utest同時將用戶賬戶utest添加到角色rtest中,使其通過權(quán)限繼承獲取了與角色rtest一樣的權(quán)限最后使用DENY語句拒絕了用戶賬戶utest對表titles的SELECT權(quán)限。經(jīng)過這樣的處理,使用ltest登錄SQL Server實例后,它只具有表product的所有權(quán)限。  
  2. */  
  3.   
  4. USE company  
  5.   
  6. --創(chuàng)建角色 rtest  
  7. EXEC sp_addrole 'rtest'  
  8.   
  9. --授予 rtest 對product 表的所有權(quán)限  
  10. GRANT ALL ON product TO rtest  
  11. --授予角色 rtest 對 employees 表的 SELECT 權(quán)限  
  12. GRANT SELECT ON titles TO rtest  
  13.   
  14. --添加登錄 ltest,設(shè)置密碼為pwd,默認數(shù)據(jù)庫為pubs  
  15. EXEC sp_addlogin 'ltest','pwd','company'  
  16.   
  17. --為登錄 ltest 在數(shù)據(jù)庫 pubs 中添加安全賬戶 utest  
  18. EXEC sp_grantdbaccess 'ltest','utest'  
  19.   
  20. --添加 utest 為角色 rtest 的成員  
  21. EXEC sp_addrolemember 'rtest','utest'  
  22.   
  23. --拒絕安全賬戶 utest 對 employees 表的 SELECT 權(quán)限  
  24. DENY SELECT ON employees TO utest  
  25.   
  26. /*--完成上述步驟后,用 ltest 登錄,可以對company表進行所有操作,但無法對employees表查詢,雖然角色 rtest 有employees表的select權(quán)限,但已經(jīng)在安全賬戶中明確拒絕了對employees的select權(quán)限,所以ltest無employees表的select權(quán)限--*/  
  27.   
  28. --從數(shù)據(jù)庫 company 中刪除安全賬戶  
  29. EXEC sp_revokedbaccess 'utest'  
  30.   
  31. --刪除登錄 ltest  
  32. EXEC sp_droplogin 'ltest'  
  33.   
  34. --刪除角色 rtest  
  35. EXEC sp_droprole 'rtest'  


 

●       總結(jié):

         在新建登陸時,利用服務(wù)器角色分配賬戶的功能,利用數(shù)據(jù)庫角色管理用戶對數(shù)據(jù)庫進行的操作。在新建角色時為角色分配權(quán)限,來限制用戶的操作。   

         懂得SQL Server安全性的機制后,我們就可以開發(fā)自己的數(shù)據(jù)庫安全策略了。你下一步所需要的可能就是產(chǎn)生一個SQL Server腳本了。在SQL Server企業(yè)管理器中,右擊一個數(shù)據(jù)庫,選擇“所有任務(wù)”,選擇“生成SQL腳本”,這個選項能夠產(chǎn)生一個腳本,對包括安全策略在內(nèi)的數(shù)據(jù)庫進行更新。一個腳本文件可以代替通過鼠標在SQL Server事件管理器中進行點擊和選擇的操作,大大減少DBA的工作量。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    中文字幕精品一区二区年下载| 丝袜破了有美女肉体免费观看| 色狠狠一区二区三区香蕉蜜桃| 伊人天堂午夜精品草草网| 亚洲午夜av久久久精品| 日本不卡在线视频中文国产 | 国产一级二级三级观看| 老司机激情五月天在线不卡| 日系韩系还是欧美久久| 中文字幕中文字幕一区二区| 欧美日韩一区二区午夜| 免费观看成人免费视频| 儿媳妇的诱惑中文字幕| 老外那个很粗大做起来很爽| 中文字幕91在线观看| 欧美夫妻性生活一区二区| 国产av大片一区二区三区| 亚洲av成人一区二区三区在线| 亚洲欧美日韩国产自拍| 欧美日韩一区二区午夜| 中文字幕亚洲精品人妻| 国产日韩精品欧美综合区| 免费特黄欧美亚洲黄片| 亚洲欧美日韩在线看片| 午夜国产精品国自产拍av| 色欧美一区二区三区在线| 99久久成人精品国产免费| 日韩人妻av中文字幕| 国产色第一区不卡高清| 久一视频这里只有精品| 久热99中文字幕视频在线 | 色一欲一性一乱—区二区三区| 欧美人与动牲交a精品| 久久国产成人精品国产成人亚洲| 欧美亚洲国产日韩一区二区| 精品欧美国产一二三区| 久久国产亚洲精品成人| 国产黑人一区二区三区| 91免费精品国自产拍偷拍| 日本加勒比中文在线观看| 午夜日韩在线观看视频|