<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      理解SQL Server中的權限體系(下)----安全對象和權限

          在開始閱讀本文之前,請確保你已經閱讀過上一篇文章,文章地址:

          理解SQL Server中的權限體系(上)----主體

       

      簡介

          在上一篇文章中,我對主體的概念做了全面的闡述。本篇文章接著講述主體所作用的安全對象以及所對應的權限。

       

      理解安全對象(Securable)

          安全對象,是SQL Server 數據庫引擎授權系統控制對其進行訪問的資源。通俗點說,就是在SQL Server權限體系下控制的對象,因為所有的對象(從服務器,到表,到視圖觸發器等)都在SQL Server的權限體系控制之下,所以在SQL Server中的任何對象都可以被稱為安全對象。

          和主體一樣,安全對象之間也是有層級,對父層級上的安全對象應用的權限會被其子層級的安全對象所繼承。SQL Server中將安全對象分為三個層次,分別為:

      •     服務器層級
      •     數據庫層級
      •     構架層級

          這三個層級是從上到下包含的,如圖1所示:

          1

          圖1.安全對象層級之間的包含關系

       

          對于SQL Server對于層級的詳細劃分,可以參看MSDN(http://msdn.microsoft.com/zh-cn/library/ms190401.aspx)。SQL Server中全部的安全對象如圖2和圖3所示。

          2

          圖2.服務器層級的安全對象

          3

          圖3.數據庫和構架層級的安全對象

       

      理解權限(Permission)

          權限是連接主體和安全對象的紐帶。SQL Server 2008中,權限分為權利限制,分別對應GRANT語句和DENY語句。GRANT表示允許主體對于安全對象做某些操作,DENY表示不允許主體對某些安全對象做某些操作。還有一個REVOKE語句用于收回先前對主體GRANT或DENY的權限。

          在設置權限時,尤其要注意權限在安全對象上的繼承關系。對于父安全對象上設置的權限,會被自動繼承到子安全對象上。主體和安全對象的層級關系如圖4所示。

          1

          圖4.主體和安全對象之間的層級關系

         

          比如,我給予主體CareySon(登錄名)對于安全對象CareySon-PC(服務器)的Select(權限),那么CareySon這個主體自動擁有CareySon-PC服務器下所有的數據庫中表和視圖等子安全對象的SELECT權限。如圖5所示。

          4

          圖5.主體對于安全對象的權限在層級上會繼承

       

          此時,主體CareySon可以看到所有數據庫極其子安全對象,如圖6所示

          5

          圖6.主體對于安全對象的權限在層級上會繼承

       

      使用T-SQL語句進行權限控制

          在理解了主體,安全對象和權限的概念之后,使用T-SQL語句進行權限控制就非常簡單了。使用GRANT語句進行授予權限,使用DENY語句限制權限,使用REVOKE語句收回之前對于權限的授予或者限制。

          GRANT在MSDN的原型為:

      GRANT { ALL [ PRIVILEGES ] }
            | permission [ ( column [ ,...n ] ) ] [ ,...n ]
            [ ON [ class :: ] securable ] TO principal [ ,...n ] 
            [ WITH GRANT OPTION ] [ AS principal ]

          對于GRANT語句的理解就像造句一樣 GRANT 某種權限 ON 安全對象類型::安全對象 TO 主體。如果指定了WITH GRANT OPTION,則被授予權限的主體可以授予別的主體同樣的權限。

          對于DENY語句在MSDN中的原型和GRANT大同小異:

      DENY { ALL [ PRIVILEGES ] }
            | permission [ ( column [ ,...n ] ) ] [ ,...n ]
            [ ON [ class :: ] securable ] TO principal [ ,...n ] 
            [ CASCADE] [ AS principal ]


          值得注意的是CASCADE選項表示拒絕主體對于安全對象的訪問權限同時決絕主體授予其他主體對于安全對象的權限。

           而REVOKE語句用于收回原來授予或拒絕某個主體對于安全對象的權限。REVOKE在MSDN中的原型如下:

      REVOKE [ GRANT OPTION FOR ]
            { 
              [ ALL [ PRIVILEGES ] ]
              |
                      permission [ ( column [ ,...n ] ) ] [ ,...n ]
            }
            [ ON [ class :: ] securable ] 
            { TO | FROM } principal [ ,...n ] 
            [ CASCADE] [ AS principal ]

         一個進行權限控制的例子如下:

      grant select--權限
       ON Schema::SalesLT--類型::安全對象
        to careyson--主體
      
      deny select--權限
       ON Schema::SalesLT--類型::安全對象
        to careyson--主體
      
      revoke select--權限
       ON Schema::SalesLT--類型::安全對象
        to careyson--主體

       

          控制權限的時候需要注意如下幾點:

      •     GRANT會移除主體作用于安全對象上的DENY和REVOKE
      •     DENY和REVOKE移出主體作用于安全對象上的GRANT
      •     REVOKE會移除主體作用于安全對象上的DENY和GRANT
      •     在高層級上的DENY會覆蓋任何子層級的GRANT。比如說,你對于Schema進行Deny,對其包含的表進行Grant,則表的GRANT會被Schema的Deny鎖覆蓋,如圖7所示。

          6

          圖7.父層級的Deny覆蓋子層級的Grant

       

      •     對于主體作用于高層級的GRANT會被其子Deny所覆蓋,還是上面的例子,我對于Schema進行Grant,對于表進行Deny,最后結果還是Deny,如圖8所示。

          7

          圖8.子層級的Deny覆蓋父層級的Grant

       

      •     SQL Server不對sysadmin組的成員做任何權限驗證操作。換句話說,sysadmin組的成員可以為所欲為

       

          而對于何種的安全對象可以進行何種對應權限的GRANT,REVOKE,DENY,請參看MSDN(http://msdn.microsoft.com/zh-cn/library/ms191291.aspx

       

      總結

          本文接著上篇文章講述了安全對象以及相應的權限。對于權限控制時,理解權限的繼承和權限的覆蓋會在設置權限時減少很多問題。

      posted @ 2012-04-12 08:31  CareySon  閱讀(11606)  評論(8)    收藏  舉報
      主站蜘蛛池模板: 国产精品一区二区三区麻豆| 99精品人妻少妇一区| av天堂午夜精品一区| 亚洲在战av极品无码| 久久天天躁夜夜躁狠狠820175| 成人视频在线观看| 国产成人不卡一区二区| 镇远县| 国产精品久久无码不卡黑寡妇| 精品国产91久久粉嫩懂色| 亚洲色一色噜一噜噜噜| 秋霞av鲁丝片一区二区| 蜜臀久久精品亚洲一区| 国产成人精品a视频| 色偷偷www.8888在线观看| 精品国产一区二区三区四区阿崩| 日韩va中文字幕无码电影| 亚洲精品一区二区动漫| 777奇米四色成人影视色区| 亚洲午夜性猛春交XXXX| 成人免费乱码大片a毛片| 性色av不卡一区二区三区| 亚洲中文字幕无码av永久| 亚洲综合一区二区国产精品| 天天做天天爱夜夜爽女人爽| 亚洲码和欧洲码一二三四| 久久九九久精品国产免费直播| 性做久久久久久久久| 亚洲欧洲精品日韩av| 亚洲熟妇色自偷自拍另类| 午夜免费视频国产在线 | 色综合久久中文字幕综合网| 亚洲一区二区日韩综合久久 | 国产精品va无码一区二区| 国产不卡一区二区四区| 亚洲中文一区二区av| 亚洲中文字幕在线二页| 成年在线观看免费人视频| 久久一区二区中文字幕| 国产欧美日韩免费看AⅤ视频| 精品国产亚洲一区二区三区|