220 likes | 386 Views
数据库原理与 SQL Server. 第 19 课 数据安全性. 第 19 课 数据安全性. 目标: 掌握 SQL Server 认证模式 掌握登录账号管理 掌握数据库用户管理 掌握角色管理 掌握权限管理. 8.1 SQL Server 安全机制. 安全管理. 登录数据库服务器. 服务器级安全 :. 访问数据库. 数据库级安全 :. 数据库对象级安全:. 操作数据库对象. 8.2 登录管理. 1. 认证模式 Windows 认证模式: Windows 用户 混合认证模式: Windows 用户+ SQL Server 用户.
E N D
数据库原理与SQL Server 第19课 数据安全性
第19课 数据安全性 目标: • 掌握SQL Server认证模式 • 掌握登录账号管理 • 掌握数据库用户管理 • 掌握角色管理 • 掌握权限管理
8.1 SQL Server安全机制 安全管理 登录数据库服务器 服务器级安全: 访问数据库 数据库级安全: 数据库对象级安全: 操作数据库对象
8.2 登录管理 1. 认证模式 Windows认证模式:Windows用户 混合认证模式: Windows用户+SQL Server用户 2. 设置认证模式 • SQL-EM→数据库服务器→右键→属性→安全性 引例:创建登录账号
一、创建登录账号 登录账号类型:标准账号、Windows用户账号、 Windows组账号 1. 使用SQL-EM SQL-EM→安全性→登录→右键→新建登录 实例 创建Windows用户登录账号login1,默认数据库student 注:Windows用户名称为“<计算机名或域名>\<用户名或组名>” 2. 使用SQL语句 语句格式:sp_addlogin '<登录账号>','<密码>','<数据库>' 实例 创建SQL Server用户登录账号login2 ,默认数据库student
二、修改登录账号 1. 使用SQL-EM SQL-EM→安全性→登录账号→右键→属性 2. 使用SQL语句 修改密码:sp_password '<原密码>','<新密码>','<登录账号>' 修改默认数据库:sp_defaultdb '<登录账号>','<默认数据库>'
三、删除登录账号 1. 使用SQL-EM SQL-EM→安全性→登录账号→右键→删除 2. 使用SQL语句 语句格式:sp_droplogin '<登录账号>'
8.3 用户管理 SQL Server账号 登录账号(Login Name):登录数据库服务器 用户账号(User Name):使用数据库 引例:创建数据库用户
一、默认数据库用户 1. dbo 数据库创建者即为dbo(数据库所有者),拥有数据库最高权限 新建数据库中只有一个用户dbo,不能删除 sa、固定服务器角色自动关联dbo 2. guest 所有登录账号自动拥有guest用户的权限 新建数据库中没有guest用户
二、创建数据库用户 1. 使用SQL-EM SQL-EM→数据库→用户→右键→新建数据库用户 实例 为登录账号login1在student中创建数据库用户user01 2. 使用SQL语句 语句格式:sp_grantdbaccess '<登录账号>'[,'<数据库用户>'] 实例 为登录账号login2在student中创建数据库用户user02
三、删除数据库用户 1. 使用SQL-EM SQL-EM→数据库→用户→右键→删除 注 不能删除拥有数据库对象的用户 2. 使用SQL语句 语句格式:sp_revokedbaccess '<数据库用户>'
8.4 角色管理 角色:不同角色拥有不同权限 不同用户共同拥有的权限 方便权限管理 固定服务器角色 • 固定数据库角色 • 自定义数据库角色 角色
固定服务器角色 权限 sysadmin 可在SQL Server中执行任何活动 serveradmin 可设置服务器范围的配置选项,关闭服务器 setupadmin 可管理链接服务器和执行某些系统过程 securityadmin 可管理登录和CREATE DATABASE权限,读取错误日志和更改密码 processadmin 可以管理在 SQL Server 中运行的进程 dbcreator 可以创建、更改和删除数据库 diskadmin 可以管理磁盘文件 bulkadmin 可以执行BULK INSERT语句 一、固定服务器角色 固定服务器角色:服务器级别,实现登录账号分组管理
管理固定服务器角色 服务器角色在安装时定义,不能修改,只能添加删除成员 1.添加成员 SQL-EM:SQL-EM→安全性→服务器角色→右键→属性 SQL语句:sp_addsrvrolemember '<登录账号>','<服务器角色>' 2.删除成员 SQL-EM:SQL-EM→安全性→服务器角色→右键→属性 SQL语句:sp_dropsrvrolemember '<登录账号>','<服务器角色>'
固定数据库角色 权限 db_owner 在数据库中有全部权限 db_accessadmin 可添加或删除用户 db_securityadmin 可管理全部权限、对象所有权、角色和角色成员 db_ddladmin 可以添加、修改和删除数据库中的对象 db_backupoperator 可对数据库进行备份 db_datareader 可查看数据库内任何用户表中的所有数据 db_datawriter 可更改数据库内任何用户表中的所有数据 db_denydatareader 不能查看数据库中的数据 db_denydatawriter 不能更改数据库中的数据 二、固定数据库角色 固定数据库角色:数据库级别,实现数据库用户分组管理 Public角色:所有数据库用户都属于Public角色 固定数据库角色在安装时定义,不能修改只能添加删除成员
三、自定义数据库角色 如果一组用户具有相同权限,可以通过自定义数据库角色实现 1. 创建自定义数据库角色 SQL-EM:SQL-EM→数据库→角色→右键→新建数据库角色 实例 在student中创建角色teacher并添加用户user01、02 SQL语句:添加角色 sp_addrole '<角色名>' 添加成员 sp_addrolemember '<角色>','<用户>' 2.删除自定义数据库角色 SQL-EM:SQL-EM→数据库→角色→右键→删除 SQL语句:sp_droprole '<角色名>'
8.5 权限管理 通过账号可以访问数据库,但对数据库对象操作必须拥有权限 默认权限: • 对象权限: • 语句权限: 系统自动授予,包括固定服务器、数据库角色 对数据库对象的访问权限 执行管理类语句的权限 权限 语句权限控制语句本身,所涉及数据库对象由对象权限决定 引例:设置数据库库用户权限
一、对象权限 1. 使用SQL-EM SQL-EM→数据库→对象→右键→属性 实例 授予public对student表s的select操作权限 该例实际将student表s的select操作权限授予student的所有用户 2. 使用SQL语句 授予、撤销、禁止对象权限:GRANT|REVOKE|DENY ALL|<对象权限> ON <对象名> TO <用户>|<自定义数据库角色> 实例 授予user02对student表s的insert、delete、update操作权限 撤销与禁止权限的区别是:撤销还可从角色中继承,而禁止不能
二、语句权限 1. 使用SQL-EM SQL-EM→数据库→右键→属性 实例 授予public对student的create table语句权限 create database语句权限在master中设置 2. 使用SQL语句 授予、撤销、禁止语句权限:GRANT|REVOKE|DENY ALL|<对象权限> TO <用户>|<自定义数据库角色> 实例 授予user02对student的create table、 create view语句权限
SQL Server安全管理机制 数据库 数据库 对象 数据库 服务器 注册 访问 操作 登录账号 数据库用户 权限及角色
作业 第八章 习题 1、2、3、4、5、6、7、8、9、10
实训 实训名称:数据安全性管理 目的要求:掌握SQL Server 2000中有关登录账号、用户账号、角色和权限的管理 操作步骤: ① 设置SQL Server 2000数据库服务器使用SQL Server和Windows混合认证模式。 ② 创建登录账号,账号名要求为:<班级>_<学号>,自行设置密码,并用账号<班级>_<学号>登录,测试其能否访问数据库student。 ③ 创建登录账号<班级>_<学号>在数据库student中对应的用户账号<班级>_<学号>,并用账号<班级>_<学号>登录,测试其能否对数据库student中的表进行操作。 ④ 授予用户<班级>_<学号>对表<班级>_<学号>_s、<班级>_<学号>_c、<班级>_<学号>_sc的查询、插入和修改权限,用账号<班级>_<学号>登录,测试其能否对数据库student对象进行操作。 ⑤ 授予用户<班级>_<学号>对数据库student的SELECT语句的权限。 ⑥ 创建自定义数据库角色student,并将用户<班级>_<学号>添加到自定义数据库角色student中。