第九章 数据库安全
9.1.1创建用户
CREATE USER user_name IDENTIFIED BY password
[DEFAULT TABLESPACE def_tabspace]
[TEMPROARY TABLESPACE temp_tabspace]
一个用户要想连接到数据库上,就必须向该用户授予”创建会话”的权限,也就是CREATE SESSION系统特权
GRANT CREATE SESSION TO Tom
9.1.2修改用户密码
ALTER USER TOM IDENTIFIED BY NEW_password;
PASSWORD 命令可以用来修改当前登录的用户密码,在输入password命令之后,SQL*Plus就会提示先输入原来的密码 ,再输入两次新的密码就可以了
9.1.3删除用户
Drop user tom;
注意:如果要删除的用户模式中包含对象(例如表等),就必须在DROP USER 语句中的要删除的用户名后面加上关键字CASCADE。
常用的系统特权:
CREATE SYNONYM 创建同名对象。同名对象用于引用其他模式中的表
CREATE ANY TABLE在任何模式中创建表
Grant 系统特权名称 to 用户名 WITH ADMIN OPTION;
这样所授权的用户就可以 把这种特权再授予其他用户。
将一种特权授予PUBLIC ,可以将该特权授予所有用户。
9.2.2检查授予用户的系统特权
通过查询user_sys_privs可以检查某个用户具有哪些系统特权。
撤销用户的系统特权
可以使用REVOKE语句撤销某个用户的系统特权。
CONNECT system/manager
REVOKE CREATE TABLE FROM steve;
9.3对象特权
对象特权允许用户对数据库对象执行特定的操作,比如对表执行DML语句。
以tom用户身份连接到数据库上,并向steve用户授予特权:
CONNECT tom/tom_password
GRANT SELECT,INSERT,UPDATE ON store.products TO steve;
GRANT UPDATE (last_name,salary) ON store.employees TO steve;
此处也可以使用GRANT选项,这样所授权的用户就可以把这种特权再授予其他用户。
GRANT SELECT ON store.customers TO steve WITH GRANT OPTION;
注意:当希望所授权的用户可以将对象特权授予其他用户时,使用GRANT 选项;当希望所授权用户将系统特权授予其他用户时,使用ADMIN选项。
检查已授予的对象特权
通过查询user_tab_privs_made可以检查某个用户对哪些表向其他用户开放了哪些对象特权。
通过查询user_col_privs_made可以检查某个用户对哪些列对象向其他用户开放了哪些对象特权。
检查已接受的对象特权
通过查询user_tab_privs_recd可以检查某个用户被授予了哪些表上的哪些对象特权。
通过查询user_col_privs_recd可以检查某个用户被授予了哪些列的对象特权。
同名对象
CONNECT system/manager
GRANT CREATE SYNONYM TO tom
然后,
Connect tom/tom_password
Create synonym customers for store.customers
公用同名对象
可以为表创建公用同名对象。在创建公用同名对象之后,所有的用户都可以看到这个同名对象。
CONNECT system/manager
GRANT CREATE SYNONYM TO tom
然后,
Connect tom/tom_password
Create public synonym products for store.products;
撤销steve用户对customers表的select特权
Revoke select on store.customers from steve;
在撤销steve用户的select on store.customers 特权时----steve已经将这种特权又授予了gail-----gail也同时失去了这种特权。
然而,在撤销用户steve用户的EXECUTE ANY PROCEDURE 特权时-----steve已经将这种特权又授予了gail----gail仍然会保留这种特权。(系统特权不删除关联)
角色就是一组特权,它可以分配一个用户或其他角色。
在增加或删除一个角色的某种特权时,被授予该角色的所有用户和角色都会自动获得新加的特权或自动失去这种特权。
通过查询user_role_privs可以检查已经授予一个用户哪些角色。
检查授予角色的系统特权
通过查询role_sys_privs 可以检查已经授予一个角色哪些系统特权。
通过查询role_tab_privs可以检查已经授予一个角色哪些对象特权。
默认情况下,在将角色授予用户时,就为该用户启用了这个角色。这就是说,在用户连接到数据库上时,就可以自动使用这个角色了。
ALTER ROLE 语句可以用来对角色进行修改,使其变为非默认角色。
CONNECT SYSTEM/MANAGER
ALTER USER steve default role all except overall_manager;
当以steve用户的身份连接到数据库上时,就需要使用SET ROLE 语句启用 overall_manager角色
CONNECT steve/button
SET ROLE overall_manager identified by manager_password;
使用下面的语句就可以清空角色的设置:
Set role none;
从角色中撤销特权:
REVOKE ALL ON products FROM product_manager;
删除角色:DROP ROLE 角色名
分享到:
相关推荐
超强数据库原理 第九章 数据库安全性
第9章数据库安全性.pptx
第9章 数据库安全性12964973.pptx
【数据库安全性概述】 数据库安全性是保护数据库免受非法访问、数据泄漏、篡改或破坏的重要措施。它不仅针对数据库系统,而是涵盖了整个计算机系统安全的三个方面:网络系统层次、宿主操作系统层次和数据库管理系统...
数据库安全性是确保数据库中存储的信息得到保护,防止未经授权的访问、修改或破坏的重要课题。数据库系统的一大特性就是数据共享,这在促进信息流通的同时也带来了安全隐患。例如,军事秘密、国家机密、商业敏感信息...
数据库安全性实践题和答案.pdf 数据库安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库安全性控制的主要技术和方法包括存取控制技术、视图技术、审计技术等。 1. 存取控制技术:是指...
本章节我们将聚焦于“第九章数据库编程实例演示”,通过实际操作来深入理解数据库编程的基本概念和技术。 首先,数据库编程主要涉及到如何使用编程语言与数据库进行交互,包括创建数据库、表结构,插入、查询、更新...
在2014年的第六章数据库安全性中,主要讨论了以下几个核心知识点: 1. 数据库安全概述: 数据库的安全性涉及保护数据库免受非法用户的攻击,同时防止数据的无意损坏。这包括保护敏感数据的保密性,防止通过不正当...
电子科技大学数据库系统及应用使用的教学ppt,学习数据库有关知识:关系数据模型、SQL、完整性约束、数据库安全、数据库恢复技术、并发控制等可以作为参考。
第八章和第九章通常会涵盖数据库系统的核心概念和高级主题。以下是这两章可能涉及的一些关键知识点的详细解释: 第八章:数据库设计与实现 1. **关系数据库模型**:这一章可能会深入讲解关系模型,包括关系、元组...
第9章 数据库的维护与安全讲解.pptx
第9章至12章的学习通常会涉及到以下知识点: 1. **关系数据库理论**:这一部分可能讲解了关系数据模型,包括实体、属性、键、主键、外键和关系等概念。可能还介绍了数据库的三大范式(第一范式、第二范式、第三范式...
数据库安全是指保护数据库免受未授权使用、破坏、修改、泄露,以确保数据的机密性、完整性和可用性。本章主要讲解了以下几个方面的知识点: 1. 数据库保护的重要性及原因: - 数据库中存储了大量对政府机关、军事...
数据库系统概论:第九章 数据库恢复技术.ppt
第四章 数据库安全性 第五章 数据库完整性 设计与应用开发篇 第六章 关系数据理论数据库设计 第七章 数据库设计 第八章 数据库编程 系统篇 第九章 关系查询处理和查询优化 第十章 数据库恢复技术 第十一章 并发控制 ...
第九章数据库安全性,介绍访问控制和授权机制;第十章数据库完整性,阐述实体完整性、参照完整性和用户定义完整性的维护。 此外,学生可以通过访问中国人民大学信息学院、中国计算机学会数据库专业委员会等网站获取...
第四章 数据库安全性 第五章 数据库完整性 ? 设计与应用开发篇 第六章 关系数据理论数据库设计 第七章 数据库设计 第八章 数据库编程 系统篇 第九章 关系查询处理和查询优化 第十章 数据库恢复技术 第十一章 并发...
针对新手入门的很好的指导资料 第一章:数据库系统导论; 第二章:面向对象数据库; 第3章 关系数据库标准语言SQL 第四章 关系系统及查询优化 第5章 关系数据理论 ...第九章 数据库安全性 第十章 数据库完整性
【C#语言与SQL Server数据库基础】\n\n在学习C#语言与SQL Server数据库的基础知识时,我们首先需要理解C#作为微软开发的一种面向对象的编程语言,它在.NET框架下提供了强大的功能,适用于构建各种类型的应用程序,...