SQL_Server_2008数据库的安全性管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 9章
SQL Server 2008数据库的 安全性管理
9.0安全性问题

黑客公开CSDN网站数据库 600余万用户资料泄密(2011)
9.0安全性问题

如家汉庭酒店2000万开房数据1.71G/BAK,792M/CSV
9.0安全性问题

携程网全面瘫痪 疑似数据库物理删除(2015)
9.0安全性问题
9.2
管理服务器登录
【例9.2】创建带密码的登录名“test”。 CREATE LOGIN test WITH PASSWORD = ‘123' 2.删除登录账户DROP LOGIN 其语法格式为:DROP LOGIN login_name
【例9.3】删除登录账户“test”。
DROP LOGIN test
9.3

角色和用户管理
【例9.13】首先创建名为“Teacher”且具有密码的服务器
登录名,然后在数据库“TEACH”中创建对应的数据库用户
“WangWei”。

CREATE LOGIN Teacher WITH PASSWORD =‘123’; CREATE USER WangWei FOR LOGIN Teacher
9.2

管理服务器登录
3.更改登录账户ALTER LOGIN 其语法格式为: ALTER LOGIN login_name { <status_option> | WITH <set_option> [ ,... ] } 【例9.5】将“test”登录密码更改为 456。 ALTER LOGIN test WITH PASSWORD = 456' 【例9.6】将登录名“test”更改为“et”。 ALTER LOGIN test WITH NAME = et

第一个安全性问题是:当用户登录数据库系统时,如何确 保只有合法的用户才能登录到系统中呢? 第二个安全性问题是:当用户登录到系统中,可以执行哪 些操作,使用哪些对象和资源呢?

9.1
数据库安全性概述

ቤተ መጻሕፍቲ ባይዱ
SQL Server的安全性管理是建立在认证(authentication) 和访问许可(permission)这两种机制上的。
9.3

角色和用户管理
9.3.1 角色管理简介 角色等价于Windows的工作组,将登录名或用户赋予一个角 色,角色具有权限,登录名或用户作为角色成员,从而继 承了所属角色的权限。如图所示。
登录名或 用户
角 色
权 限
9.3

角色和用户管理
在SQL Server中角色分为服务器角色和数据库角色。而数 据库角色又分为固有数据库角色、用户自定义数据库角色 和应用程序角色。 1.服务器角色 服务器角色内建于SQL Server,其权限无法更改,每一个 角色拥有一定级别的数据库管理职能,如图9.8所示。

Windows验证模式
混合验证模式
9.1

数据库安全性概述
9.1.2 验证模式的修改 当安装SQL Server时,可以选择SQL Server的身份验证类 型。安装完成之后也可以修改认证模式。修改步骤如下。 (1)打开SQL Server Management Studio。 (2)在要更改的服务器上鼠标右键单击,在快捷菜单中选 择属性,弹出服务器属性对话框。 (3)单击左侧列表中的“安全性”项,出现“安全性”页 面,如图15.1所示。在图中修改身份验证。
9.3
9.3.3

角色和用户管理
用户管理简介
用户对数据的访问权限以及对数据库对象的所有关系都是
通过用户账号来控制的,用户账号总是基于数据库的,即 两个不同数据库中可以有两个相同的用户账号。

在数据库中,用户账号与登录账号是两个不同的概念,一 个合法的登录账号只表明该账号通过了Windows认证或SQL Server认证,但不能表明其可以对数据库数据和数据对象 进行某种操作。
9.2

管理服务器登录
(3)在“登录名”编辑框中输入登录名称,输入的登录名 必须是已存在的Windows登录用户。可以单击“搜索…”按 钮,出现登录“选择用户和组”对话框,如图15.4所示。 在对象名称编辑框中输入用户或组的名称,单击“检查名 称”按钮检查对象是否存在。输入完成,单击“确定”按 钮关闭选择用户或组对话框。
9.2

管理服务器登录

(4)确认选择的是“Windows身份验证”。指定账户登录 的默认数据库。 (5) 单击窗口左侧列表中的“服务器角色”节点,指定 账户所属服务器角色。 (6)单击窗口左侧列表中的“用户映射”节点,右侧出现 用户映射页面。可以查看或修改SQL登录账户到数据库用户 的映射。选择此登录账户可以访问的数据库,对具体的数 据库,指定要映射到登录名的数据库用户(默认情况下, 数据库用户名与登录名相同)。指定用户的默认架构,首 次创建用户时,其默认架构是dbo。 (7)设置完成单击“确定”按钮提交更改。

通常而言,数据库用户账号总是与某一登录账号相关联。
9.3
角色和用户管理
用户通过Windows认证或SQL Server认证而成功登录到SQL Server之后的过程如下:
(1)检查该登录用户是否有合法的用户名,如果有合法用户
名,则允许其以用户名访问数据库,否则执行步骤2。
(2)SQL Server检查是否有guest用户,如果有,则允许登录 用户以guest用户来访问数据库,如果没有,则该登录用户被 拒绝。
9.2

管理服务器登录
2.创建SQL Server登录账户 一个SQL Server登录账户名是一个新的登录账户,该账户 和Windows操作系统的登录账户没有关系。 (1)打开新建登录名对话框,选择“SQL Server身份验 证”,输入登录名,密码和确认密码,并选择缺省数据库, 如图所示。
9.3

角色和用户管理

9.3.4 用户的管理 1.使用Management Studio管理用 户 (1) 在Management Studio对象 资源管理器中,扩展指定的数据库 节点,直到看到用户节点,如右图 所示。 (2)鼠标右键单击用户子节点, 在弹出菜单中选择“新建用户…”, 弹出“新建数据库用户”对话框, 如图9.19所示。在用户名编辑框中 输入用户名。

9.3

角色和用户管理
服务器角色包括以下几种。 bulkadmin:可以运行BULK INSERT语句。 dbcreator:可以创建任何数据库。 diskadmin:管理磁盘文件。 processadmin:可以终止SQL Server实例中运行的进程。 securityadmin: 管理登录名的密码。 serveradmin:可以更改服务器范围的配置选项和关闭服 务器。 setupadmin:添加和删除链接服务器,并且也可以执行 某些系统存储过程。 sysadmin:可以在服务器中执行任何活动。
9.3
角色和用户管理
9.3

角色和用户管理
2. 使用Transact-SQL管理用户 使用Transact-SQL管理用户的语句有CREATE USER,DROP USER,ALTER USER。 (1)创建用户:CREATE USER CREATE USER语法格式为: CREATE USER user_name [ { { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = schema_name ]
9.2

管理服务器登录

9.2.2 使用Transact-SQL管理登录账户 在Transact-SQL中,管理登录账户的SQL语句有:CREATE LOGIN、DROP LOGIN、ALTER LOGIN。下面简要说明如何使 用T-SQL来创建和维护登录账户。 1.新建登录账户CREATE LOGIN 其语法格式为: CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }

用户访问数据库权限的设置是通过用户账号来实现的。角 色简化了安全性管理。
9.1

数据库安全性概述
所以在SQL Server的安全模型中包括以下几部分: SQL Server身份验证 登录账户 数据库用户 角色 权限 架构
9.1

数据库安全性概述
身份验证简介
9.1.1
SQL Server支持两种模式的身份验证:
9.3

角色和用户管理
2.固有数据库角色 固有数据库角色是指这些角色的数 据库权限已被SQL Server预定义, 不能对其权限进行任何修改,并且 这些角色存在于每个数据库中,如 图9.9所示。
9.3

角色和用户管理
固有数据库角色包括以下几种。 db_accessadmin:可以为Windows登录账户、Windows 组和 SQL Server登录账户添加或删除访问权限。 db_backupoperator:可以备份该数据库。 db_datareader:可以读取所有用户表中的所有数据。 db_datawriter:可以在所有用户表中添加、删除或更改数 据。 db_ddladmin:可以在数据库中运行任何数据定义语言 (DDL)命令。 db_denydatareader:不能读取数据库内用户表中的任何数 据。
9.2
管理服务器登录

(2)设置服务器角色和用户映射,请参考“创建Windows登 录账户”的步骤5和步骤6。
9.2

管理服务器登录
3.登录账户管理 创建登录账户之后,在图 9.2所示服务器安全性展开 登录名节点上,鼠标右键单 击相应的账户,出现快捷菜 单,如图15.6所示,如果要 修改该登录账户,选择属性 菜单;如要删除该登录账户, 则选择删除菜单。
【例9.15】更改数据库用户的名称。
ALTER USER WangWei WITH NAME = Wangjf
9.3
角色和用户管理
【例9.16】更改用户的默认架构。
ALTER USER WangWei WITH DEFAULT_SCHEMA = Admining
9.1
数据库安全性概述
图9.1 身份验证
9.2

管理服务器登录
1.创建Windows登录账户 (1)在“对象资源管理器”中,单击树型目录中的“安全 性”节点,如图9.2所示。
9.2

管理服务器登录
(2)鼠标右键单击“安全性”的子节点“登录名”,在快 捷菜单中选择“新建登录名…”,出现“登录名-新建”对 话框,如图15.3所示。
9.3
角色和用户管理
(2)更改用户名或更改其登录的默认架构ALTER USER
其语法格式为:
ALTER USER user_name WITH <set_item> [ ,...n ]
<set_item> ::= NAME = new_user_name
| DEFAULT_SCHEMA = schema_name
9.3

角色和用户管理
3.用户自定义数据库角色
当打算为某些数据库用户设置相同的权限,但是这些权限
不等同于预定义的数据库角色所具有的权限时,就可以定义新 的数据库角色来满足这一要求,从而使这些用户能够在数据库 中实现某些特定功能。
9.3
角色和用户管理
9.3.2 角色的管理 1.使用Management Studio管理角色 (1)为服务器角色添加登录账户。 (2)为固有数据库角色添加成员。 (3)创建用户自定义角色。
9.3

角色和用户管理

db_denydatawriter:不能添加、修改或删除数据库内用户 表中的任何数据。 db_owner:可以执行数据库的所有配置和维护活动。 db_securityadmin:可以修改角色成员身份和管理权限。 public:当添加一个数据库用户时,它自动成为该角色成 员,该角色不能删除,指定给该角色的权限自动给予所有 数据库用户。 db_owner和db_securityadmin角色的成员可以管理固有数 据库角色成员身份;但是,只有db_owner数据库的成员可 以向db_owner固有数据库角色中添加成员。
相关文档
最新文档