让石头裂开的不是最后一击,而是前面的99次击打
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

文章目录

  • 一、用户管理
  • 二、权限管理
  • 三、角色管理
  • 四、总结

安全性对于数据库来说是重中之重,是衡量一个数据库产品的重要指标。例如银行的数据库数据、国家的军事数据等都是非常重要的,必须完善保护,防止被非法获取。这篇文章将重点介绍与oracle数据库安全管理相关的技术,包括用户管理、权限管理和角色管理。

一、用户管理

在安装oracle数据库的时候,默认的用户有sys、system、scott和sh。其中sys是超级管理员,具有最高权限,可以启动、修改和关闭数据库;system是普通管理员,不能启动和关闭数据库,但可以完成创建用户等管理工作;scott是普通用户;sh是大数据用户。
每一连接到数据库的用户必须是系统的合法用户。
1、创建新用户
我们必须以管理员身份登录才能创建新的用户,其基本语法格式如下所示。

create user user_name identified by password;

其中user_name为新用户的用户名,password为口令。该语法还有很多参数,这里就不一一详述,用户如果需要可以查找帮助文件。

创建新用户user1,口令为123456

create user user1 identified by 123456;

2、用户锁定与解锁
用户锁定是指用户暂时无法登录数据库,但不影响该用户的所有数据库对象的正常使用,当用户账号解锁后,用户可以和以前一样正常连接和登录数据库。
锁定的命令如下。

alter user user_name account lock;

解锁的命令如下。

alter user user_name account unlock;

3、修改用户账号信息
用户创建完成后,管理员可以对用户进行修改,包括修改用户口令、改变用户表空间等,基本语法如下所示。

alter user user_name identified by password;

将user1的口令修改为654321
命令如下所示。

alter user user1 identified by 654321;

4、删除用户账户
当一个数据库用户不再使用的时候,可以将该用户以及其拥有的所有对象都删除。基本语法如下所示。

drop user user_name [cascade]

如果该用户下面没有任何数据对象,可以直接使用drop user命令删除,如果该用户下面有对象,必须使用cascade参数。

删除用户user1

drop user user1;

二、权限管理

使用我们新创建的用户登录会报错,是因为每一个新创建的用户本身不具备任何的权限,而在oracle数据库里面,如果用户想要登录,则必须具有创建session的权限。
事实上,oracle数据库使用权限来控制用户对数据的访问和用户所能执行的操作。权限就是执行特定类型的sql命令或访问其他用户对象的权利。用户在数据库中可以执行哪些操作,以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。在oracle数据库中,用户权限分为两种。
系统权限:指系统级控制数据库的存取和使用的机制,即执行某种sql语句的能力。例如,能够启动或者停止数据库,能够创建、删除或者修改数据库对象(表,索引,视图等)。在oracle11g数据库中,有200多种系统权限。
对象权限:对某个特定的数据库对象执行某种操作的权限。例如特定表的插入、删除、修改、查询的权限。在oracle11g数据库中,有9中类型的对象权限。

1、系统权限的授予

grant <系统权限> to <用户名>

授予用户user1创建表的权限。

grant create session to user1;

2、系统权限的收回

revoke <系统权限> from <用户名>

撤销用户user1创建表的权限

revoke create table from user1;

撤销用户user1登录数据库的权限

revoke create session from user1;

3、用户系统权限的查询
与系统权限有关的数据字典是dba_sys_privs(所有系统权限)和user_sys_privs(用户拥有的系统权限)。可以使用查询命令在这几个数据字典中查询。

查看当前用户具有的系统权限

select * from user_sys_privs;

4、对象权限的授予
基本语法和系统权限的授予一样,如下所示。

grant <对象权限> on <对象> to <用户名>

授予user1用户对scott用户下数据表emp的select,insert和delete的权限。

grant select,insert,delete on scott.emp to user1;

5、对象权限的回收
基本语法如下所示

revoke <对象权限> on <对象> from <用户名>

回收user1用户对scott用户下数据表emp的select和delete的权限。

revoke select,delete on scott.emp from user1;

三、角色管理

oracle的权限有很多,在管理的时候如果要逐个授予,既费时又费力,为了简化管理,引入了角色的概念。所谓角色就是一系列相关权限的集合,即将所需要的权限先授予给角色,在需要的时候再将角色授予给用户,这样用户就得到了该角色所具有的所有权限,从而减少了权限的管理。
1、角色的定义
oracle数据库创建的时候系统自动创建一些常用的角色,这些角色已经由系统授予了相应的一些权限,管理员可以直接将这些角色授权给不同用户。这些常用的角色如下表所示。
dba:该角色包含所有系统的权限
connect:该角色向用户提供登录和执行基本函数的能力,可以具有创建表、视图、序列等的权限
resource:该角色具有创建过程、触发器、表、序列等的权限。

2、角色创建
基本语法如下

create role <角色名称> identified by <口令>

创建角色clerk,口令为123

create role clerk identified by 123;

3、为角色分配权限
角色创建后,既可以授予系统权限也可以授予对象权限,授予方法同上节介绍的授予用户权限的语法相同。

为角色clerk授予对scott用户下数据表emp的select,insert和delete的权限

grant select,insert,delete on scott.emp to clerk;

4、将角色授予用户
基本语法如下所示。

grant <角色名> to <用户名>

将clerk角色授予用户user1

grant clerk to user1;

5、角色权限的回收
把角色clerk对scott用户下数据表emp的select和delete的权限回收。

revoke select,delete on scott.emp from clerk;

6、角色信息查询
我们可以使用数据字典dba_role_privs、user_role_privs、roles_sys_privs等获取数据库角色及其权限信息。

查询角色clerk所拥有的系统权限信息。

select * from roles_sys_privs where role = 'clerk';

查询用户所拥有角色的信息

select * from dba_role_privs;

四、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

Oracle-安全管理相关推荐

  1. 计算机三级数据库安全管理(一)、授权语句、WITH GRANT OPTION、guest、用户定义的数据库角色、Oracle安全管理、收权语句、安全管理、数据库用户、角色、用户分类、GRANT

    1.设某数据库中有表T1(c1,c2, c3),并只对U1执行了如下授权语句: GRANT SELECT ON T1 TO U1 下列语句中,U1无权执行的是 A.SELECT *FROM T1 B. ...

  2. oracle 运维案例,运维注意事项及案例讲解(个人心得)

    应客户要求,需要写一篇<数据库运维注意事项和案例讲解>,正好自己也可以把近来这段时间中碰到的运维问题总结一下.同时也分享给大家.记之 ---------------------- 1.数据 ...

  3. oracle实验六杨艳华_oracle实验报告总结

    Oracle 实验报告 姓名 学院: 年级: 班级: 指导老师: 实验一 了解 ... 学期 Oracle 数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师: 成绩: 史金余 2 ...

  4. Oracle的学习详解

    =============oralce安装=============== 基本位置:Oracle安装在哪一个目录(注意不同版本的区别)  %driver_name%\app\username  目标驱 ...

  5. oracle实验和代码

    专业:网络工程本科 制 定 人: 郭东恩 教 研 室:数据库技术教研室 2011 年1 月 前言 大型数据库ORACLE是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应 ...

  6. 洪兴社的Oracle情节之安全管理篇(一)

    一数据库版本 SYS@LEO1>select * from v$version; BANNER ------------------------------------------------- ...

  7. oracle10g应用,2017企业级Oracle10g数据库管理与应用

    [课程内容] 一.安装与配置oracle 10g 1.规划及安装oracle 10g服务器 2.安装oracle客户端及配置数据库 二.数据库基本操作 1.启动数据库 2.关闭数据库实例 3.初始化参 ...

  8. oracle 10g体系结构及安全管理

    1.了解oracle数据库物理结构 2.理解oracle数据库逻辑结构 3.掌握oracle数据库的安全管理 一. --创建一个myspace表空间 create tablespace myspace ...

  9. Oracle 11g 数据库 实验7 数据库安全管理

    Oracle 11g 数据库实验7 数据库安全管理 1.实验目的 (1)掌握Oracle数据库安全控制的实现. (2)掌握Oracle数据库用户管理. (3)掌握Oracle数据库权限管理. (4)掌 ...

  10. oracle数据安全管理实验,第四次Oracle数据库上机实验-bistu

    <第四次Oracle数据库上机实验-bistu>由会员分享,可在线阅读,更多相关<第四次Oracle数据库上机实验-bistu(3页珍藏版)>请在人人文库网上搜索. 1.BIS ...

最新文章

  1. CSDN 的文化衫寄送到啦
  2. Elasticsearch索引迁移的三种方式
  3. 微信小程序——云服务环境的配置
  4. 应用软件系统程序员的三个立面
  5. JavaFX技巧29:使布局忽略不可见的节点
  6. 深入理解Magento – 第五章 – Magento资源配置
  7. 哪些手机搭载鸿蒙,鸿蒙2.0搭载手机吗-有什么功能
  8. 计算机完成双系统无法启动怎么办,电脑双系统引导修复教程
  9. 吉他音阶训练——问题解答 (三)
  10. vim 配置(ma6174 + YCM)
  11. onenote 实现不同端 秒同步
  12. 使用uvm_report_catcher屏蔽掉特定的uvm_error/uvm_warning
  13. Codeforces Round #828 (Div. 3) E1. Divisible Numbers (easy version) 解题报告
  14. RPG Maker MV 踩坑一 新仙剑菜单
  15. labuladong的算法小抄_学会了回溯算法,我终于会做数独了
  16. AndroidManifest.xml参数
  17. SpringBoot整合Mybatis(配置文件)
  18. C++常见的SML用法 ACM 必备
  19. C语言字符串输入与输出函数
  20. dynamic web twain java免费下载及使用方法教程功能详解

热门文章

  1. 首席新媒体运营商学院创始人黎想:如何做好活动策划?只要3步!
  2. html5 mysql 展示_基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
  3. Linux下IPv6配置
  4. java-implements - 线程创建
  5. contextmenu的使用
  6. 黑狐木马最新变种——“肥兔”详细分析
  7. [从头学数学] 第180节 解三角形
  8. 289、海康威视内部培训教材干货
  9. 如何保证linearlayout_怎么让LinearLayout占据父布局的所有剩余空间
  10. CCAD | 2023版“肥料”相关数据已上线!