Oracle 用户管理与权限控制

时间:2023-01-03 03:27:01

Oracle 用户管理与权限控制

oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。 
  每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。

ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,
许多数据字典视图包含相似的信息。

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息。
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息。
DBA_*:有关整个数据库中对象的信息。

一、用户管理

1、查询用户

select username from dba_users;

查询所有用户

select * from all_users

查询当前用户信息:

select * from user_users

结果:

Oracle 用户管理与权限控制

系统用户:

sys;//系统管理员,拥有最高权限

system;//本地管理员,次高权限

scott;//普通用户,密码默认为tiger,默认未解锁

2、创建用户

create user username identified by password;

username: 用户名,自定义

password: 密码,自定义

3、删除用户

drop user username;

如果用户已经拥有自己的对象,则需要使用:cascade(级联)。可以强制删除用户的所有对象,然后删除用户。

drop user username cascade;

二、权限管理

1、授权

将权限授权给某个用户。

基本用法:

grant  权限   to  用户

授权dba

grant dba to username

示例:

Oracle 用户管理与权限控制

授权连接和资源

grant connect,resource to demo;   //授权连接、资源

授权可创建session,可以在服务器上进行连接

grant create session to demo;

应用测试:

Oracle 用户管理与权限控制

授权创建、查询、更新、删除表的权限:

grant create any table to demo; //创建表

grant drop any table to demo; //删除表

grant alter any table to demo; //修改表

授权执行存储过程:

grant execute any procedure to demo

授权数据权限:

grant insert any table to demo; //增加数据

grant delete any table to demo; //删除数据

grant update any table to demo; //更新数据

grant select any table to demo; //查询数据

授权具体的表权限:

grant select on demo.students on demo; //将查询students的权限授权给demo
grant update on demo.students to demo;

2、撤销权限

revoke

基本用法:

revoke  权限  from  用户

撤销dba权限

revoke dba from demo;

撤销连接取取权限

revoke connect from demo

撤销创建表权限

revoke create any table from demo;

撤销某表的权限

revoke all on demo.students from demo;

3、查询各种权限

查询系统所有权限

select * from system_privilege_map

查询所有对象权限

select * from table_privilege_map

查询角色拥有的权限

select * from role_sys_privs;
select * from role_tab_privs 

查询用户系统权限

select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;

查询用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

三、角色

  Oracle为了兼容以前的版本,提供了三种标准的角色(role):connect、resource和dba。
  1. connect role(连接角色)
  临时用户,特别是那些不需要建表的用户,通常只赋予他们connectrole。connect是使用oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有connect role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。
  2. resource role(资源角色)
  更可靠和正式的数据库用户可以授予resource role。resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
  3. dba role(数据库管理员角色)
  dba role拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有。

1、创建角色

create role backer

2、授权

grant select any table to backer

3、撤销

revoke update any table from backer

4、分配角色,将角色权限授予给用户

grant backer to demo

5、将角色权限授予其他角色

grant backer to backer2

6、删除角色

drop role backer2

示例:

Oracle 用户管理与权限控制

查询所有角色

select * from dba_roles

查询结果

Oracle 用户管理与权限控制

查看当前用户角色

select * from role_sys_privs

查看当前用户管理的角色

select * from user_role_privs

Oracle 用户管理与权限控制

select * from dba_role_privs

Oracle 用户管理与权限控制的更多相关文章

  1. linux —— 学习笔记(用户管理与权限控制)

    目录:1.用户的创建和管理    2.组的创建和管理 3.文件执行权限的控制 4.不用密码执行sudo 1.用户的创建和管理 用户的创建和管理: useradd.usermod . userdel . ...

  2. Oracle 用户管理与权限分配

    用户管理是系统管理员最基本的任务之一,用户想要连接数据库并且使用相应的系统资源就必须是系统的合法用户且具有对应的权限. 1 创建用户 default tablespace default_tables ...

  3. Oracle 用户管理权限

    Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...

  4. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...

  5. Oracle—用户管理的完全恢复(一)

    一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...

  6. MySQL 用户管理与权限管理

    MySQL 用户管理与权限管理 -- 操作环境mysql> show variables like 'version';  +---------------+--------+| Variabl ...

  7. Oracle—用户管理的完全恢复(四)

    在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...

  8. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  9. Oracle—用户管理的备份(二)

    在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...

随机推荐

  1. Ubuntu中设置静态IP和DNS

    在Ubuntu中设置静态IP共两步:1>设置IP:2>设置DNS1>设置IP    编辑 /etc/network/interface文件:       sudo vi /etc/n ...

  2. bzoj1486: [HNOI2009]最小圈

    二分+dfs. 这道题求图的最小环的每条边的权值的平均值μ. 这个平均值是大有用处的,求它我们就不用记录这条环到底有几条边构成. 如果我们把这个图的所有边的权值减去μ,就会出现负环. 所以二分求解. ...

  3. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(&quot ...

  4. Java集合学习笔记

      在Java中,我们经常听到Collections框架.Collection类以及Collections类.这三者名字相似,但是从概念上讲却是不同的.Collections框架泛指Java中用于存储 ...

  5. 使用Publish Over SSH插件实现远程自动部署

    背景: 现场的部署环境开放外网环境困难,只有一台机器能够开发外网,应对该情况,所有的补丁文件需要直接在master机器上面生成,然后命令移动到其他的服务器上面去. 这里使用到了jenkins的Publ ...

  6. 一位6年老Android面经总结

    声明|作者:android进阶者地址:https://www.jianshu.com/p/d77873cbad5f 前言 准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事 ...

  7. linux常用命令 cut字符截取命令

    cut 字符截取 cut [选项] 文件名 选项 -f 列号: 提取第几列 -d 分割符:按照指定的分隔符分割列 默认使用制表符("tab")进行分割 ssgao:Download ...

  8. SQL-26 (二次分组)汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no、dept_name、其当前员工所有的title以及该类型title对应的数目count

    题目描述 汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no.dept_name.其当前员工所有的title以及该类型title对应的数目countCREATE TABLE ...

  9. 【运维技术】JENKINS管道部署容器化初探

    目标服务器安装docker参考官方文档 https://docs.docker.com/install/linux/docker-ce/centos/ (可选)在目标服务器上安装docker私服 ht ...

  10. iptables简单规则记录

    先来一句:好记性不如烂笔头! 1.iptables简介 iptables是基于包过滤的防火墙,它主要工作在osi模型的2,,4层,也可以工作在7层(iptables + squid) 2.原理 防火墙 ...