Oracle-安全管理

这篇具有很好参考价值的文章主要介绍了Oracle-安全管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

alter user identified by,Oracle,oracle,数据库,安全


安全性对于数据库来说是重中之重,是衡量一个数据库产品的重要指标。例如银行的数据库数据、国家的军事数据等都是非常重要的,必须完善保护,防止被非法获取。这篇文章将重点介绍与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面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。文章来源地址https://www.toymoban.com/news/detail-522758.html

到了这里,关于Oracle-安全管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • oracle递归查询connect by prior

    1、测试环境 数据库表结构如下: create table menu_prior( root_id number, id number, name varchar(20), description varchar(20) ); 插入数据 2、基本查询 (1)获取完整树: (2)获取特定子树: (3)不做深层递归 如果connect by prior中的prior被省略,则查询将不进行深层递归。 如: 3、递归查询分类

    2024年02月04日
    浏览(44)
  • oracle中关于connect by的语法及实现(前序遍历树)

    connect by是是结构化查询中用到的,其基本语法是: 1 select … from tablename 2 start with 条件1 3 connect by 条件2 4 where 条件3; 例: id 120 123 126 125 128 127 122 124 121 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:org_id,parent_id,那么通过表示每一条记录的paren

    2024年02月06日
    浏览(38)
  • Oracle 使用 CONNECT_BY_ROOT 解锁层次结构洞察:在 SQL 中导航数据关系

    CONNECT_BY_ROOT 是一个在 Oracle 数据库中使用的特殊函数,它通常用于在层次查询中获取根节点的值。在使用 CONNECT BY 子句进行层次查询时,通过 CONNECT_BY_ROOT 函数,你可以在每一行中获取根节点的值,而不仅仅是当前行的值。 假设有一个需求,给定一个编码,需要查询出来它的

    2024年02月13日
    浏览(66)
  • 安全生产管理平台——革新传统安全生产管理方式,重塑企业安全文化

    安全生产管理在现代企业中占据着至关重要的地位。传统的安全生产管理方式虽然在一定程度上能够保障企业的生产安全,但随着企业规模的不断扩大和生产环境的日益复杂,其局限性也愈发凸显。而安全生产管理平台的出现,正是为了解决这一问题。 平台功能与特点 安全

    2024年01月18日
    浏览(62)
  • 安全生产管理系统助力企业安全细化管理

    安全生产管理系统利用完整的安全生产管理体系,结合信息化、数字化和智能化等技术手段,将安全生产过程中的各个环节进行有效整合,使安全管理更加科学、规范和高效。 安全生产管理系统可以对企业安全生产进行全面、细致的管理。它能够实现对企业安全生产活动的全

    2024年02月06日
    浏览(58)
  • 安全运营之资产安全信息管理

    安全风险管理的三要素分别是资产、威胁和脆弱性,脆弱性的存在将会导致风险,而威胁主体利用脆弱性产生风险。网络攻击主要利用了系统的脆弱性。由于网络管理对象(资产)自身的脆弱性,使得威胁的发生成为可能,从而造成了不同的影响,形成了风险。“摸清家底,

    2024年02月15日
    浏览(51)
  • 信息安全管理(CISP)—— 信息安全保障

    写在最前面 一、信息安全保障知识框架 二、信息安全保障基础 1.信息安全的定义 2.信息安全问题 3.信息安全问题的根源与特征 4.信息安全属性 5.信息安全视角 6.信息安全发展阶段 7.威胁情报与态势感知 三、信息安全保障框架 1.PDR模型 2.PPDR模型 3.IATF模型 4.信息系统安全保障

    2024年02月08日
    浏览(41)
  • 网络安全——基线管理与安全配置

    一、基线管理概述 1、什么是安全基线 简单来说,就是安全的最低标准线,满足安全需求的最低要求  2、基线的相关名词  3、基线核查的对象 必须把所有资产统计出来,如果漏了的话,可能会成为一个薄弱点,被攻击 4、基线管理 基线配置不仅仅是一项工作任务,更是一项

    2024年02月11日
    浏览(56)
  • CONTAINER = ALL是ALTER USER语句的默认值

    连接到root时查看有关root,CDB和PDB的数据 当公用用户执行查询时,可以限制X $表和V $,GV $和CDB_ *视图的视图信息。X$表和这些视图包含有关应用程序root及其关联应用程序PDB的信息,或者如果连接到CDB root,则是整个CDB。 当不想全局其他PDB的敏感信息时,限制此信息很有用。

    2024年02月16日
    浏览(36)
  • 二、安全与风险管理—风险管理

    目录 一、什么是风险及风险管理过程 二、威胁建模 三、主动攻击和被动攻击

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包