亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談SQL Server 2005數據庫系統(tǒng)的權限管理

        2012-03-19 13:21:13蘇文萍
        網絡安全技術與應用 2012年10期
        關鍵詞:數據庫用戶管理

        蘇文萍

        南京市科技信息研究所 江蘇 210018

        0 引言

        對于一個數據庫管理員來說,安全性就意味著必須保證那些具有特殊數據訪問權限的用戶能夠登錄到SQL Server,并且能夠訪問數據以及對數據庫對象實施各種權限范圍內的操作;同時,他還要防止所有的非授權用戶的非法操作。

        SQL Server2005提供的安全管理模式建立在安全身份驗證和訪問許可兩種機制上。SQL Server2005中權限管理的主要對象包括服務器登錄名、服務器角色、數據庫用戶、數據庫角色,搞清楚這些對象間的關系,對于理解SQL Server2005的權限管理有很大幫助。比如為大型企業(yè)設計數據庫的時候必然考慮到角色劃分、權限劃分的問題。

        1 許可(權限)管理

        1.1 概述

        許可用來指定授權用戶可以使用的數據庫對象和這些授權用戶可以對這些數據庫對象執(zhí)行的操作。用戶在登錄到SQL Server之后,其用戶賬號所歸屬的Windows組或角色所被賦予的許可(權限)決定了該用戶能夠對哪些數據庫對象執(zhí)行哪種操作以及能夠訪問、修改哪些數據。在每個數據庫中用戶的許可獨立于用戶賬號和用戶在數據庫中的角色,每個數據庫都有自己獨立的許可系統(tǒng)。

        在SQL Server中包括三種類型的許可:

        (1) 對象許可:表示對特定的數據庫對象(即表、視圖、字段和存儲過程)的操作許可,它決定了能對表、視圖等數據庫對象執(zhí)行哪些操作。

        (2) 語句許可:表示對數據庫的操作許可,也就是說,創(chuàng)建數據庫或者創(chuàng)建數據庫中的其他內容所需要的許可類型稱為語句許可。

        (3) 預定義許可:指系統(tǒng)安裝以后有些用戶和角色不必授權就有的許可。

        許可的管理包括對許可的授權、否定和收回。在 SQL Server中,可以使用SQL Server管理平臺和Transaction_SQL語句兩種方式來管理許可。

        1.2 使用SQL Server 管理平臺管理許可

        SQL Server 可通過兩種途徑實現對用戶許可的設定:

        (1) 面向單一用戶

        在數據庫用戶常規(guī)選項頁中,如果在“數據庫角色成員身份”選項欄中選擇一個數據庫角色,實際上就完成了數據庫用戶語句許可的設置。因為對于這些數據庫固定角色,SQL Server已經定義了其具有哪些語句許可。

        (2) 面向數據庫對象的許可設置

        在SQL Server 管理平臺中,展開服務器和數據庫,然后選擇需要設置的用戶對象,即表、視圖、存儲過程等,在右面的頁框中選擇要進行許可設置的對象,右擊該對象,從彈出的快捷菜單中選擇“屬性”選項,出現對象屬性對話框,在該對話框中選擇“權限”頁框,單擊“添加”按鈕設置好相應的對象許可后,單擊“確定”按鈕即可完成數據庫對象的許可設置。

        1.3 使用Transaction_SQL 語句管理許可

        Transaction-SQL 語句中的數據控制語言(DCL)用來設置或更改數據庫用戶或角色權限的語句,包括 GRANT、REVOKE和DENY三種命令。默認狀態(tài)下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執(zhí)行數據控制語言。

        1.3.1 GRANT語句

        (1) 語句權限與角色的授予,語法如下:

        GRANT <語句權限>|<角色> [,<語句權限>|<角色>]…TO< 用 戶 名 >|< 角 色 >|PUBLIC[,< 用 戶 名 >|< 角色>]…[WITH ADMIN OPTION]

        例如:給用戶 Mary 和 John 以及 Windows NT 組CorporateBobJ 授予多個語句權限,語句如下:

        GRANT CREATE DATABASE, CREATE TABLE TO Mary, John, [CorporateBobJ]

        (2) 對象權限與角色的授予

        數據庫管理員擁有系統(tǒng)權限,而作為數據庫的普通用戶,只對自己創(chuàng)建的基本表、視圖等數據庫對象擁有對象權限。如果要共享其他的數據庫對象,則必須授予他一定的對象權限。

        同語句權限的授予類似,SQL語言使用GRANT語句為用戶授予對象權限,其語法格式為:

        GRANT ALL|<對象權限>[(列名[,列名]…)][,<對象權限>]…ON <對象名>

        TO <用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…[WITH ADMIN OPTION]

        其語義為:將指定的操作對象的對象權限授予指定的用戶或角色。

        例如:在權限層次中授予對象權限。首先,給所有用戶授予 SELECT 權限,然后,將特定的權限授予用戶 Mary,John 和 Tom,語句實現如下:

        GRANT SELECT

        ON s

        TO public

        GO

        GRANT INSERT, UPDATE, DELETE

        ON s

        TO Mary, John, Tom

        GO

        1.3.2 REVOKE語句

        REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前數據庫內的用戶或者角色上授予或拒絕的權限刪除,但是該語句并不影響用戶或者角色從其他角色中作為成員繼承過來的權限。

        (1) 語句權限與角色的收回

        數據庫管理員可以使用 REVOKE語句收回語句權限,其語法格式為:

        REVOKE <語句權限>|<角色> [,<語句權限>|<角色>]…

        FROM <用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…

        例如:收回用戶 ZHANGYILIN所擁有的 CREATE TABLE的語句權限,實現如下:

        REVOKE CREATE TABLE

        FROM ZHANGYILIN

        (2) 對象權限與角色的收回

        所有授予出去的權力在必要時都可以由數據庫管理員和授權者收回,收回對象權限仍然使用 REVOKE語句,其語法格式為:

        REVOKE <對象權限>|<角色> [,<對象權限>|<角色>]…

        FROM <用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…

        例如:從public 角色中收回 SELECT 權限,然后,收回用戶 Mary,John 和 Tom 的特定權限:

        USE pubs

        GO

        REVOKE SELECT ON s FROM public

        GO

        REVOKE INSERT, UPDATE, DELETE

        ON s

        FROM Mary, John, Tom

        1.3.3 DENY語句

        DENY語句用于拒絕給當前數據庫內的用戶或者角色授予權限,并防止用戶或角色通過其組或角色成員繼承權限。

        否定語句權限的語法形式為:

        DENY ALL|<語句權限>|<角色> [,<語句權限>|<角色>]…

        TO <用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…

        否定對象權限的語法形式為:

        DENY ALL|<對象權限>[(列名[,列名]…)][,<對象權限>]…ON <對象名>

        TO <用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…

        例如:給 public 角色授予 SELECT 權限,然后,拒絕用戶 Mary,John 和 Tom 的特定權限:

        USE pubs

        GO

        GRANT SELECT

        ON s

        TO public

        GO

        DENY SELECT, INSERT, UPDATE, DELETE

        ON s

        TO Mary,John,Tom

        2 角色管理

        2.1 概述

        角色定義了常規(guī)的 SQL Server 用戶類別。每種角色將該類別的用戶與其使用 SQL Server時執(zhí)行的任務集以及成功完成這些任務所需的知識相關聯。利用角色,SQL Server管理者可以將某些用戶設置為某一角色,這樣只要對角色進行權限設置便可以實現對所有用戶權限的設置。

        SQL Server提供了用戶通常管理工作的預定義服務器角色和數據庫角色。用戶還可以創(chuàng)建自己的數據庫角色,以便表示某一類進行同樣操作的用戶。當用戶需要執(zhí)行不同的操作時,只需將該用戶加入不同的角色中即可,而不必對該用戶反復授權許可和收回許可。

        2.2 服務器角色

        服務器角色主要是控制服務器端對請求數據庫資源的訪問權限,他允許或拒絕服務器登錄名的訪問操作。SQL Server2005提供一組固定的服務器角色,比如sysadmin、securityadmin等,通過將這些固定的服務器角色賦予不同的服務器登錄名對象,可以是實現服務器級別的權限管理。將服務器角色賦予登錄名對象的語句如下: exec sp_addsrvrolemember Kelvin, sysadmin ;exec sp_dropsrvrolemember Kelvin, sysadmin; 一個服務器登錄名對象可以擁有多個固定服務器角色權限,但是固定服務器角色不能被修改、添加和刪除。

        服務器角色是指根據SQL Server的管理任務,以及這些任務相對的重要性等級來把具有SQL Server管理職能的用戶劃分為不同的用戶組,每一組所具有的管理SQL Server的權限都是SQL Server內置的。服務器角色存在于各個數據庫之中,要想加入用戶,該用戶必須有登錄賬號以便加入到角色中。

        對于擁有服務器角色sysadmin的登錄名對象,它可以SQL Server2005中做任何操作(由此可見服務器角色權限粒度之大)。但對那些沒有sysadmin角色的登錄名對象,它需要擁有一個能訪問特定數據庫實例的數據庫用戶名(User)以實現對該數據庫的操作。比如說為登錄名Kelvin想要訪問AdventureWorks數據庫,但不具備sysadmin的服務器角色。那么則在AdventureWorks數據庫中中創(chuàng)建一個名為user_Kelvin的數據庫用戶。TSQL:USE AdventureWorks; GO; create user user_Kelvin for login Kelvin; 執(zhí)行之后,用 Kelvin登錄名登錄的用戶與AdventureWorks下的user_Kelvin用戶建立起了關聯。

        2.3 數據庫角色

        數據庫角色是為某一用戶或某一組用戶授予不同級別的管理或訪問數據庫以及數據庫對象的權限,這些權限是數據庫專有的,并且還可以使一個用戶具有屬于同一數據庫的多個角色。

        SQL Server提供了兩種類型的數據庫角色:

        (1) 固定的數據庫角色

        固定數據庫角色是系統(tǒng)默認用于組織數據庫用戶權限的角色,包括db_datareader、db_ddladmin、db_owner等,這些角色都包含與其名稱相同的數據庫架構(Schema),比如db_datareader就默認只擁有名為db_datareader的架構。用戶可以創(chuàng)建角色,并讓角色獲取相應的架構,最后將角色與數據庫用戶建立起聯系即可。 比如: Use AdventureWorks; exec sp_addrolemember db_datareader, user_Kelvin; 執(zhí)行后user_Kelvin就擁有了讀取數據的權限(該權限為db_datareader角色擁有)。

        SQL Server管理者不能對固定的數據庫角色所具有的權限進行任何修改。SQL Server的每一個數據庫中都有一組固定的數據庫角色,可以將不同級別的數據庫管理工作分給不同的角色,從而有效地實現工作權限的傳遞。

        (2) 用戶自定義的數據庫角色

        如果一組用戶需要執(zhí)行在SQL Server中指定的一組操作并且不存在對應的Windows組,或者沒有管理Windows用戶賬號的許可,就可以在數據庫中建立一個用戶自定義的數據庫角色。用戶自定義的數據庫角色有兩種類型:即標準角色和應用程序角色。

        標準角色通過對用戶權限等級的認定而將用戶劃分為不用的用戶組,使用戶總是相對于一個或多個角色,從而實現管理的安全性。

        應用程序角色使得某些用戶只能通過特定的應用程序間接地存取數據庫中的數據而不是直接地存取數據庫數據。通過應用程序角色,能夠以可控制方式來限定用戶的語句或者對象許可。

        2.4 使用SQL Server管理平臺管理角色

        (1) 管理服務器角色

        打開SQL Server管理平臺,展開指定的服務器,單擊安全性文件夾,然后單擊服務器角色圖標,在右邊的頁框中右擊所要的角色,從彈出的快捷菜單中選擇“屬性”選項,則出現服務器角色屬性對話框。在該對話框中我們可以看到屬于該角色的成員。單擊“添加”按鈕則彈出添加成員對話框,其中可以選擇添加新的登錄賬號作為該服務器角色成員,單擊刪除按鈕則可以從服務器角色中“刪除”選定的賬號。

        (2) 管理數據庫角色

        在SQL Server管理平臺中,展開指定的服務器以及指定的數據庫,然后展開安全性文件夾,右擊數據庫角色圖標,從彈出的快捷菜單中選擇“新建數據庫角色”選項,則出現新建數據庫角色對話框。在名稱文本框中輸入該數據庫角色的名稱;點擊架構前的復選框,可設定此角色擁有的架構;單擊“添加”按鈕,可將數據庫用戶增加到新建的數據庫角色中;最后單擊“確定”按鈕即可完成新的數據庫角色的創(chuàng)建。

        2.5 使用存儲過程管理角色

        (1) 管理服務器角色

        在SQL Server中,管理服務器角色的存儲過程主要有兩個:sp_addsrvrolemember和sp_dropsrvrolemember。

        系統(tǒng)存儲過程 sp_addsrvrolemember可以將某一登錄賬號加入到服務器角色中,使其成為該服務器角色的成員。其語法形式如下:

        sp_addsrvrolemember login,role

        系統(tǒng)存儲過程sp_dropsrvrolemember可以將某一登錄者從某一服務器角色中刪除,當該成員從服務器角色中被刪除后,便不再具有該服務器角色所設置的權限。其語法形式如下:

        sp_dropsrvrolemember [@loginame=]’login’,[@rolename=]’role’

        其中,@loginame為登錄者名稱;@rolename為服務器角色。

        (2) 管理數據庫角色

        在SQL Server中,支持數據庫管理的存儲過程主要有六種:

        create role:用來創(chuàng)建一個新的數據庫角色,create role語法形式如下:

        create role role_name [ AUTHORIZATION owner_name ]

        其中:role_name 為待創(chuàng)建角色的名稱;AUTHORIZATION owner_name為擁有新角色的數據庫用戶或角色。如果未指定用戶,則執(zhí)行 CREATE ROLE 的用戶將擁有該角色。

        droprole:用于從當前數據庫角色中刪除一個數據庫角色,Droprole的語法形式如下:

        Drop role role_name

        sp_helprole:用來顯示當前數據庫中所有數據庫角色的全部信息。其語法形式如下:

        sp_helprole [‘role’]

        sp_addrolemember:用來向數據庫某一角色中添加數據庫用戶,這些角色可以是用戶自定義的標準角色,也可以是固定的數據庫角色,但不能是應用程序角色。其語法形式如下:

        sp_addrolemember role,security_account

        sp_droprolemember:用來刪除某一角色的用戶。其語法形式如下:

        sp_droprolemember role,security_account

        sp_helprolemember:用于顯示某一數據庫角色的所有成員。其語法形式如下:

        sp_helprolemember [‘role’]

        3 結束語

        SQL Server2005中權限管理的主要對象包括服務器登錄名、服務器角色、數據庫用戶、數據庫角色。服務器登錄名對象分別與服務器角色和數據庫用戶直接關聯,而數據庫用戶與數據庫角色和數據庫架構直接聯系,從而形成了整個數據庫結構的權限管理。搞清楚這些對象間的關系,對于理解SQL Server2005的權限管理有很大幫助。

        [1] 劉世生,韓兵.基于RBAC的SQL Server 2005數據庫權限管理[J].硅谷.2009.

        [2] 陳偉.SQL Server 2005數據庫應用與開發(fā)教程[M].北京:清華大學出版社.2007.

        [3] 邢紅剛.關于SQL Server數據庫的安全問題的思考們.科技資訊.2008.

        [4] 宋敏,程鳳娟. SQL Server 2005安全機制研究[J].電腦與信息技術.2008.

        [5] 郭煦.基于角色的訪問控制的應用研究[J].上海電機學院學報.2007.

        猜你喜歡
        數據庫用戶管理
        棗前期管理再好,后期管不好,前功盡棄
        數據庫
        財經(2017年2期)2017-03-10 14:35:35
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數據庫
        財經(2016年15期)2016-06-03 07:38:02
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數據庫
        財經(2016年3期)2016-03-07 07:44:46
        數據庫
        財經(2016年6期)2016-02-24 07:41:51
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        人本管理在我國國企中的應用
        欧美性高清另类videosex| 色狠狠av老熟女| 久久ri精品高清一区二区三区| 久久精品国产亚洲婷婷| 日韩av一区二区三区在线观看| 中文有码人妻字幕在线| 天天噜日日噜狠狠噜免费| 国产内射性高湖| 红杏性无码免费专区| 久久少妇高潮免费观看| 琪琪色原网站在线观看| 免费国产黄网站在线观看| 亚洲AV无码成人精品区网页| 人妻系列少妇极品熟妇| 又硬又粗进去好爽免费| 香港日本三级亚洲三级| 国产精品白浆一区二区免费看| 国产高清自产拍av在线| 国产日产精品_国产精品毛片| a级毛片100部免费看| 久久久久久一级毛片免费无遮挡| 天堂av国产一区二区熟女人妻| 免费无遮挡无码永久在线观看视频| 8ⅹ8x擦拨擦拨成人免费视频 | 亚洲天天综合色制服丝袜在线 | 婷婷成人亚洲| 和少妇人妻邻居做爰完整版| av色一区二区三区精品| 亚洲女初尝黑人巨高清| 国内精品伊人久久久久av| 亚洲一区二区视频免费看| 中文字幕在线观看| 国产白嫩美女在线观看| 日韩女优一区二区视频| 中文字日产幕码三区的做法步| 久久久久亚洲av片无码下载蜜桃| 亚洲中文字幕无码卡通动漫野外 | 欧美黄色免费看| 精品色老头老太国产精品| 黑人巨大精品欧美| 日韩好片一区二区在线看|