2017年計算機等級考試四級數據庫工程師復習(14)

字號:

  第14章 安全管理
    14.1 安全控制
    14.1.1 安全控制模型
    身份驗證 操作權控制 文件操作控制 加密存儲與冗余
    14.1.2 數據庫權限的種類及用戶的分類
    1、 權限的種類
    (1) 對DBMS進行維護的權限;
    (2) 對數據庫中的對象和數據進行操作的權限。
    (A) 對數據庫對象的權限,包括創(chuàng)建、刪除和修改數據庫對象;
    (B) 對數據庫數據的操作權限,包括對表、視圖數據的增、刪、改、查權限。
    2、 數據庫用戶的分類
    (1) 數據庫系統(tǒng)管理員(sa):在數據庫中具有全部的權限;
    (2) 數據庫對象擁有者:對其所擁有的對象具有一切權限;
    (3) 普通用戶:只具有對數據庫數據的增、刪、改、查權限。
    14.2 SQL Server 的安全控制
    1、 用戶訪問SQL Server 數據庫中的數據中,必須經過三個認證過程
    (1) 身份認證:驗證用戶是否有連接到數據庫服務器的“連接權”;
    (2) 驗證用戶是否數據庫的合法用戶;
    (3) 驗證數據庫用戶是否具有要進行的操作的操作權限。
    2、 SQL Server的用戶有兩種類型:
    (1) Windows授權用戶:來自Windows的用戶或組;
    (2) SQL授權用戶:來自于非Windows的用戶,也將這種用戶稱為SQL用戶。
    3、 SQL Server 為不同用戶類型提供不同的安全認證模式:
    (1) Windows 身份驗證模式:允許Windows NT或Windows 2000用戶連接到SQL Server,在這種模式下,SQL Server將通過Windows來獲得用戶信息,并對賬號和密碼進行重新驗證,當使用Windows身份驗證模式時,用戶必須先登錄到Windows,然后再登錄到SQL Server;
    (2) 混合驗證模式:表示SQL Server接受Windows授權用戶和SQL授權用戶。
    14.3 管理SQL Server 登錄賬戶
    14.3.1 系統(tǒng)內置的登錄賬戶
    1、 BUILTIN\Administrators:是一個Windows組賬戶,表示所有的Windows Administrators(系統(tǒng)管理員)組中的用戶都可以登錄到SQL Server,此組中的成員同是具有SQL Server的系統(tǒng)管理員權限;
    2、 Sa:SQL Server驗證模式的系統(tǒng)管理員賬戶;
    3、 域名\Administrators: Windows的系統(tǒng)管理員同時也是SQL Server的合法用戶,并且具有SQL Server的系統(tǒng)管理員權限。
    14.3.2 建立登錄賬戶
    1、 使用企業(yè)管理器建立登錄賬戶
    2、 使用系統(tǒng)存儲過程建立登錄賬戶
    (1) 建立SQL Server身份驗證的登錄賬戶:
    sp_addlogin [@loginame=]’login’[,[@passwd=]’password’][,[@defdb=]’database’]
    其中:
    (A)[@loginame=]’login’:登錄賬戶名;
    (B)[@passwd=]’password’:登錄密碼;
    (C)[@defdb=]’database’:連接的數據庫。
    (2) 建立Windows身份驗證的登錄賬戶
    sp_grantlogin [@loginame=]’login’
    其中:[@loginame=]’login’為要添加的Windows NT用戶或組的名稱,Windows NT組和用戶必須用Windows NT域名限定,格式為“域\用戶”
    14.3.3 刪除登錄賬戶
    1、 使用企業(yè)管理器刪除登錄賬戶;
    2、 使用系統(tǒng)存儲過程刪除登錄賬戶:
    (1)刪除SQL Server身份驗證的登錄賬戶:
    sp_droplogin [@loginame=]’login’
    其中:[@loginame=]’login’:將被刪除的登錄賬戶名;
    (2)刪除Windows身份驗證的登錄賬戶
    sp_revokelogin [@loginame=]’login’
    其中:[@loginame=]’login’為要刪除的Windows NT用戶或組的名稱,Windows NT組和用戶必須用Windows NT域名限定,格式為“域\用戶”
    14.4 管理數據庫用戶
    14.4.1 建立數據庫用戶
    1、 使用企業(yè)管理器建立數據庫用戶;
    2、 使用系統(tǒng)存儲過程建立數據庫用戶:
    sp_adduser[@ loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]’group’]
    其中:
    (1)[@ loginame=]’login’:登錄賬戶名,login必須是已有的SQL Server登錄賬戶或Windows NT用戶名
    (2)[@name_in_db=]’user’:新數據庫用戶名,如沒有指定,則user與login名相同;
    (3)[@grpname=]’group’:角色名,新用戶自動地成為此角色的成員,group必須是當前數據庫已有的角色。
    14.4.2 刪除數據庫用戶
    1、使用企業(yè)管理器刪除數據庫用戶;
    2、使用系統(tǒng)存儲過程建立數據庫用戶:
    sp_dropuser[@name_in_db=]’user’
    14.5 管理權限
    14.5.1 SQL Server權限種類
    1、 對象權限:指用戶對數據庫中的表、視圖等對象中數據的操作權限,相當于數據庫操作語言(DML)的語句權限;
    2、 語句權限:相當于數據定義語言(DDL)的語句權限,專指是否允許執(zhí)行:CREATE TABLE、CREATE VIEW等與創(chuàng)建數據庫對象有關的操作;
    3、 隱含權限:指數據庫管理系統(tǒng)預定義的服務器角色、數據庫角色、數據庫擁有者和數據庫對象擁有者所具有的權限
    14.5.2 權限的管理
    權限的管理包括:
    (1) 授予權限:允許用戶或角色具有某種操作權;
    (2) 收回權限:不允許用戶或角色具有某種操作權,或收回曾經授予的權限;
    (3) 拒絕訪問:拒絕某用戶或角色具有某種操作權限;
    1、 使用企業(yè)管理器管理數據庫用戶權限;
    2、 使用企業(yè)管理器管理語句權限;
    3、 使用Transact-SQL語句管理對象權限
    (1) GRANT語句:用于授權;
    GRANT 對象權限名 [,…]ON{表名|視圖名|存儲過程名}
    TO{數據庫用戶名|用戶角色名}[,…]
    (2) REVOKE語句:用于收回權限;
    REVOKE 對象權限名 [,…]ON{表名|視圖名|存儲過程名}
    TO{數據庫用戶名|用戶角色名}[,…]
    (3) DENY語句:用于拒絕權限。
    DENY 對象權限名 [,…]ON{表名|視圖名|存儲過程名}
    TO{數據庫用戶名|用戶角色名}[,…]
    4、使用Transact-SQL語句管理語句權限
    (1)授權語句:
    GRANT 對象權限名 [,…] TO {數據庫用戶名|用戶角色名}[,…]
    (2)收權語句;
    REVOKE 對象權限名 [,…] FROM {數據庫用戶名|用戶角色名}[,…]
    (3)拒絕權限。
    DENY 對象權限名 [,…] TO {數據庫用戶名|用戶角色名}[,…]
    14.6 角色
    14.6.1 固定的服務器角色
    是在服務器級上定義,這些角色具有完成特定服務器級管理活動的權限,用戶不能添加、刪除或更改固定的服務器角色。用戶的登錄賬戶可以添加到固定的服務器角色中,使其成為服務器角色中的成員,從而具有服務器角色的權限。
    固定的服務器角色描述
    Sysadmin可在SQL Server中進行任何活動,該角色的權限包含了所有其它固定的服務器角色權限
    Serveradmin配置服務器范圍的設置
    Setupadmin添加和刪除鏈接服務器,并執(zhí)行某些系統(tǒng)存儲過程
    Securityadmin管理服務器登錄賬戶
    Processadmin管理在SQL Server實例中運行的進程
    Dbcreator創(chuàng)建、更改和刪除數據庫
    Diskadmin管理磁盤文件
    bulkadmin執(zhí)行BULK INSERT語句
    固定的服務器角色的成員是系統(tǒng)的登錄賬戶,系統(tǒng)內置的
    (1) BUILTIN\Administrators組;
    (2) Sa
    (3) 域名\Administrators
    自動是sysadmin角色中的成員。
    1、 添加固定的服務器角色成員
    (1) 用企業(yè)管理器實現;
    (2) 用系統(tǒng)存儲過程實現;
    sp_addsrvrolemember[@loginame=]’login’[@rolename=]’role’
    其中:
    [@loginame=]’login’:添加到固定服務器角色的登錄名稱;
    [@rolename=]’role’:要將登錄添加到的固定服務器角色的名稱。
    2、 刪除固定的服務器角色成員
    14.6.2 固定的數據庫角色
    是在數據庫級別上定義,用戶不能添加、刪除或更改固定的服務器角色。用戶的登錄賬戶可以添加到固定的數據庫角色中,使其成為成員,從而具有數據庫角色的權限。
    固定的數據庫角色描述
    Db_owner在數據庫中擁有全部權限
    Db_accessadmin可以添加或刪除用戶ID
    Db_securityadmin可以管理數據庫角色和角色成員,并管理數據庫中的語句權限和對象權限
    Db_ddladmin可以建立、修改和刪除數據庫對象(運行所有的DDL語句)
    Db_backupoperator可以進行數據庫的備份、恢復操作
    Db_datareader可以查詢數據庫中所有用戶表中的數據
    Db_datawriter可以更改數據庫中所有用戶表中的數據
    Db_denydatareader不允許查詢數據庫中所有用戶表中的數據
    Db_denydatawriter不允許更改數據庫中所有用戶表中的數據
    public默認不具有任何權限,但用戶可對此角色進行授權
    其中public角色是一個特殊的角色:
    (1) 數據庫中的每個用戶都自動地是public角色成員,用戶不能從public角色中添加和刪除成員;
    (2) 用戶可以對這個角色進行授權。
    1、添加固定的數據庫角色成員
    (1) 用企業(yè)管理器實現;
    (2) 用系統(tǒng)存儲過程實現;
    sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’
    其中:
    [@rolename=]’role’:當前固定數據庫中的角色名稱;
    [@membername=]’security_account’:添加到角色中的用戶名。
    2、刪除固定的數據庫角色成員
    14.6.3 用戶自定義的角色
    屬于數據庫一級的角色,用戶可根據實際工作職能定義一系列角色,并給每個角色授予合適的權限。只需將數據庫用戶放置到合適的角色中即可。
    1、建立用戶自定義庫角色
    (1) 用企業(yè)管理器實現;
    (2) 用系統(tǒng)存儲過程實現;
    sp_addrole [@rolename=]’role’,[@ownername=]’owner’
    其中:
    [@rolename=]’role’:新的角色名稱;
    [@ownername=]’owner’:新角色的所有者。
    3、 為用戶定義的角色授權;
    4、 添加和刪除用戶自定義角色成員