当前课程知识点:数据库系统原理与开发 > 第5章 数据库管理 > 5.4 安全管理 > 5.4.2 安全管理-2
大家好!
我是主讲教师陆鑫
下面我们开始学习数据库课程
第5.4小节 安全管理—用户、角色、权限管理
本节学习目标如下
1)掌握数据库用户管理方法
2)掌握数据库权限管理方法
3)掌握数据库角色管理方法
一、用户管理
用户要访问数据库
必须先在DBMS中创建其账号
并成为数据库的用户
此后,用户每次访问数据库
都需要在DBMS进行身份验证
只有合法用户才能进入系统
访问操作数据库对象
在数据库系统中
DBMS验证用户过程如下图所示
在数据库系统中
验证用户身份是由DBMS相应模块来实现
只有在用户输入正确的登录名及其密码后
才能成功验证通过
DBMS根据该用户的角色
赋予他访问数据库对象的操作权限
该用户只能在他的权限范围内访问操作数据库对象
用户管理
在数据库安全管理中
DBMS需要对每个用户进行管理
如用户创建、用户修改
用户删除等管理
实现用户管理方式
数据库服务器执行SQL语句管理用户
通过管理工具GUI操作管理用户
1.用户创建SQL语句
CREATE USER [ [WITH] option […]]
例如,创建一个新用户
其账号名字为“userA”
密码为“123456”
该用户具有登录权限(Login)和角色继承权限(Inherit)
但它不是超级用户(SuperUser)
不具有创建数据库权限(CreateDB)
创建角色权限(CreateRole)
数据库复制权限(Replication)
此外,数据库连接数(Connection Limit)不受限
实现该用户创建的SQL语句如下
在创建用户的SQL语句中
会使用一些数据库选项参数
其定义具体见相应的DBMS技术手册
用户创建SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入用户创建SQL语句
点取“运行”按钮
当该SQL正确执行后
系统返回成功消息
2.用户修改SQL语句
针对用户修改
SQL语言提供了多种内容的修改语句
如下所示
修改用户属性 ALTER USER [ [ WITH ] option [ ... ] ]
修改用户名称 ALTER USER RENAME TO ;
修改用户参数值 ALTER USER SET
重置用户参数值 ALTER USER RESET ;
例如, 修改用户“userA”的账号密码为“gres123”
同时也限制该用户的数据库连接数为10
针对该用户修改要求
其SQL语句如下
用户修改SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入用户修改SQL语句
点取“运行”按钮
当该SQL正确执行后
系统返回成功消息
3.用户删除SQL语句
如下所示
DROP USER ;
例如, 在数据库中删除用户“userA”
可以通过执行如下用户删除SQL语句实现用户删除
用户删除SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入用户删除SQL语句
点取“运行”按钮
当该SQL正确执行后
系统返回成功消息
二、权限管理
数据库权限管理是指DBA管理员
或数据库对象拥有者对其所拥有对象进行权限控制设置
权限管理基本操作
授予权限
收回权限
拒绝权限
权限类别
数据库系统权限
数据库对象访问操作权限
数据库对象定义操作权限
1.权限管理SQL语句
授予权限SQL语句 GRANT
收回权限SQL语句 REVOKE
拒绝用户权限SQL语句 DENY
权限管理实例
例如, 在3.7.1节工程项目管理系统中
DBA管理员赋予员工用户(userA)对部门表(Department)
员工表(Employee)
项目表(Project)和任务表(Assignment)的读取数据权限
对用户“userA”实现授权SQL程序如下
赋予用户userA在部门表上查询权限
赋予用户userA在雇员表上查询权限
赋予用户userA在项目表上查询权限
赋予用户userA在任务表上查询权限
用户授权SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入用户授权SQL语句
点取“运行”按钮
当该SQL正确执行后
系统返回成功消息
三、角色管理
在DBMS中为了方便对众多用户及其权限进行管理
通常将一组具有相同权限的用户定义为角色(Role)
角色管理内容
创建角色
修改角色
删除角色
角色管理实现方式
执行SQL语句管理角色
通过GUI操作管理角色
1.角色管理SQL语句
角色管理包括创建角色
修改角色、删除角色等操作
其SQL语句如下所示
创建角色语句 CREATE ROLE [ [ WITH ] option [ ... ] ]
修改角色属性语句 ALTER ROLE [ [ WITH ] option [ ... ] ]
修改角色名称语句 ALTER ROLE RENAME TO
修改角色参数语句 ALTER ROLE SET
复位角色参数语句 ALTER ROLE RESET
删除指定角色语句 DROP ROLE
2.角色管理实例
例如, 在工程项目管理系统中
假定需要在ProjectDB数据库内创建经理角色Role_Manager
该角色具有登录权限(Login)和角色继承权限(Inherit)
但它不是超级用户(SuperUser)
不具有创建数据库权限(CreateDB)创建角色权限(CreateRole)
数据库复制权限(Replication)
此外,数据库连接数(Connection Limit)不受限
实现该角色创建的SQL语句如下所示
角色创建SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入角色创建SQL语句
点取“运行”按钮
当该SQL正确执行后
系统返回成功消息
3.角色权限授予
例如, 在创建好经理角色Role_Manager后
还需要赋予该角色对数据库表Department、Employee、Project、Assignment的
插入、修改、删除、查询权限
实现该角色权限授予的SQL语句如下
授予经理角色在部门表上查询、插入、修改、删除权限
授予经理角色在雇员表上查询、插入、修改、删除权限
授予经理角色在项目表上查询、插入、修改、删除权限
授予经理角色在任务表上查询、插入、修改、删除权限
角色授权SQL语句执行
将该SQL提交数据库服务器执行
其操作界面如下图所示
在数据库管理工具中
输入角色授权SQL语句
点取“运行”按钮
当该SQL语句执行成功后
系统返回成功消息
好了,本节学习结束!
-1.1 数据库及其系统概念
-1.2 数据库技术发展
-1.3 数据库应用系统
-1.4 典型数据库管理系统
-1.5 PostgreSQL对象-关系数据库系统软件
-第1章 数据库系统概论--本章单元测试
-2.1 关系及其相关概念
-2.2 关系模型原理
-2.3 PostgreSQL数据库关系操作实践
-第2章 数据库关系模型--本章单元测试
-3.1 SQL语言概述
-3.2 数据定义SQL语句
-3.3 数据操纵SQL语句
-3.4 数据查询SQL语句
-3.5 数据控制SQL语句
-3.6 视图SQL语句
-3.7 PostgreSQL数据库SQL实践
-第3章 数据库操作SQL语言--本章单元测试
-4.1 数据库设计概述
-4.2 E-R模型方法
-4.3 数据库建模设计
-4.4 数据库规范化设计
-4.5 数据库设计模型SQL实现
-4.6 基于Power Designer的数据库设计建模实践
--4.6 基于Power Designer的数据库设计建模实践
-第4章 数据库设计与实现--本章单元测试
-5.1 数据库管理概述
-5.2 事务管理
--5.2 事务管理
-5.3 并发控制
-5.4 安全管理
-5.5 数据库备份与恢复
-5.6 PostgreSQL数据库管理项目实践
-第5章 数据库管理--本章单元测试
-6.1 数据库连接技术
-6.2 数据库存储过程
-6.3 数据库触发器
-6.4 数据库游标
-6.5 嵌入式SQL编程
-第6章 数据库应用编程--本章单元测试
-7.1 NoSQL数据库概述
-7.2 列存储数据库
-7.3 键值对数据库
-7.4 文档型数据库
-7.5 图形数据库
-7.6 HBase数据库项目实践
-第7章 NoSQL数据库技术--本章单元测试
-期末测试--期末测试