必胜高考网 > 计算机类 > 计算机等级 > 资讯 >

数据库工程师复习重点:安全管理

时间: 家辉2 资讯

  身份验证 操作权控制 文件操作控制 加密存储与冗余

  14.1.2 数据库权限的种类及用户的分类

  1、 权限的种类

  (1) 对DBMS进行维护的权限;

  (2) 对数据库中的对象和数据进行操作的权限。

  (A) 对数据库对象的权限,包括创建、删除和修改数据库对象;

  (B) 对数据库数据的操作权限,包括对表、视图数据的增、删、改、查权限。

  2、 数据库用户的分类

  (1) 数据库系统管理员(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 系统内置的登录账户

  1、 BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Administrators(系统管理员)组中的用户都可以登录到SQL Server,此组中的成员同是具有SQL Server的系统管理员权限;

  2、 Sa:SQL Server验证模式的系统管理员账户;

  3、 域名\Administrators: Windows的系统管理员同时也是SQL Server的合法用户,并且具有SQL Server的系统管理员权限。

  14.3.2 建立登录账户

  1、 使用企业管理器建立登录账户

  2、 使用系统存储过程建立登录账户

  (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、 使用企业管理器删除登录账户;

  2、 使用系统存储过程删除登录账户:

  (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、 使用企业管理器建立数据库用户;

  2、 使用系统存储过程建立数据库用户:

  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、使用企业管理器删除数据库用户;

  2、使用系统存储过程建立数据库用户:

  sp_dropuser[@name_in_db=]’user’

  14.5 管理权限

  14.5.1 SQL Server权限种类

  1、 对象权限:指用户对数据库中的表、视图等对象中数据的操作权限,相当于数据库操作语言(DML)的语句权限;

  2、 语句权限:相当于数据定义语言(DDL)的语句权限,专指是否允许执行:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作;

  3、 隐含权限:指数据库管理系统预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限

  14.5.2 权限的管理

  权限的管理包括:

  (1) 授予权限:允许用户或角色具有某种操作权;

  (2) 收回权限:不允许用户或角色具有某种操作权,或收回曾经授予的权限;

  (3) 拒绝访问:拒绝某用户或角色具有某种操作权限;

  1、 使用企业管理器管理数据库用户权限;

  2、 使用企业管理器管理语句权限;

  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添加和删除链接服务器,并执行某些系统存储过程

  Securityadmin管理服务器登录账户

  Processadmin管理在SQL Server实例中运行的进程

  Dbcreator创建、更改和删除数据库

  Diskadmin管理磁盘文件

  bulkadmin执行BULK INSERT语句

  固定的服务器角色的成员是系统的登录账户,系统内置的

  (1) BUILTIN\Administrators组;

  (2) Sa

  (3) 域名\Administrators

  自动是sysadmin角色中的成员。

  1、 添加固定的服务器角色成员

  (1) 用企业管理器实现;

  (2) 用系统存储过程实现;

  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) 用企业管理器实现;

  (2) 用系统存储过程实现;

  sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’

  其中:

  [@rolename=]’role’:当前固定数据库中的角色名称;

  [@membername=]’security_account’:添加到角色中的用户名。

  2、删除固定的数据库角色成员

  14.6.3 用户自定义的角色

  属于数据库一级的角色,用户可根据实际工作职能定义一系列角色,并给每个角色授予合适的权限。只需将数据库用户放置到合适的角色中即可。

  1、建立用户自定义库角色

  (1) 用企业管理器实现;

  (2) 用系统存储过程实现;

  sp_addrole [@rolename=]’role’,[@ownername=]’owner’

  其中:

  [@rolename=]’role’:新的角色名称;

  [@ownername=]’owner’:新角色的所有者。

  3、 为用户定义的角色授权;

  4、 添加和删除用户自定义角色成员

56849