Oracle数据库---用户与角色

时间:2022-03-23 22:28:16
Oracle数据库---用户与角色

Oracle数据库---用户与角色

2019年02月26日 10:56:10 俊杰梓 阅读数:21 标签: 数据库 更多
个人分类: 数据库
版权声明:版权所有,转载请注明出处.谢谢 https://blog.csdn.net/weixin_35353187/article/details/87929965

安装Oracle时,若没有设置默认密码,则以下为默认账户的密码:

用户名 / 密码 登录身份 说明
sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMAL 登录,可作为默认的系统管理员,超级管理员,负责数据库系统的管理
system/manager SYSDBA 或 NORMAL 普通管理员,负责数据库对象的管理,如:创建用户,授权,创建数据库等等
sysman/oem_temp   sysman 为 oms 的用户名
scott/tiger NORMAL 普通用户
aqadm /aqadm SYSDBA 或 NORMAL 高级队列管理员
Dbsnmp/dbsnmp SYSDBA 或 NORMAL 复制管理员
scott SYSDBA 或 NORMAL 该用户主要用于给我们学习的时候使用。如果要使用该用户就必须解锁,并且修改密码
hr  SYSDBA 或 NORMAL 测试用户。该用户有一些hr相关的测试数据。如果要使用该用户就必须解锁,并且修改密码

cmd窗口连接数据库时,运行cmd命令行

sqlplus /nolog   无用户名登录

conn /as sysdba   连接到数据本地数据

alter user system identified by password   修改System 密码  为password

查看所有用户信息:

---dba_users:保存系统中所有用户的详细信息。

select * from dba_users;

Oracle数据库---用户与角色

创建用户

  1. create user 用户名
  2. identified by 密码
  3. [default tablespace 表空间];
  4. --新创建的用户没有任何权限,登陆后会提示
  1. --创建用户
  2. create user test01
  3. identified by 123456
  4. default tablespace test01;
  1. --登录:也需要有权限
  2. --Oracle 中已存在三个重要的角色:connect 角色,resource 角色,dba 角色。
  3. CONNECT 角色: --是授予最终用户的典型权利,最基本的
  4. ALTER SESSION --修改会话
  5. CREATE CLUSTER --建立聚簇
  6. CREATE DATABASE LINK --建立数据库链接
  7. CREATE SEQUENCE --建立序列
  8. CREATE SESSION --建立会话
  9. CREATE SYNONYM --建立同义词
  10. CREATE VIEW --建立视图
  11. RESOURCE 角色: --是授予开发人员的
  12. CREATE CLUSTER --建立聚簇
  13. CREATE PROCEDURE --建立过程
  14. CREATE SEQUENCE --建立序列
  15. CREATE TABLE --建表
  16. CREATE TRIGGER --建立触发器
  17. CREATE TYPE --建立类型
  18. DBA 角色:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,
  19. 并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除
  20. grant dba to user_test;
  21. 进入 system 用户下给用户赋予 dba 权限,否则无法正常登陆
  1. --分配角色权限:
  2. -- 授权: grant connect,resource to test01;
  3. grant dba to test01;
  4. --撤销授权
  5. -- revoke connect,resource from test01;

设置用户密码

alter user 用户名 identified by 密码;
alter user test01 identified by a123456; --该方式不能修改为纯数字密码

解锁用户

alter user 用户名 account unlock;
  1. --锁定hr测试用户
  2. alter user hr account lock;
  3. --解锁hr测试用户
  4. alter user hr account unlock;

删除用户

drop user 用户名 [cascade];
  1. drop user test01 [cascade];
  2. --如果删除的用户中已经有数据,那么删除用户的时候,就必须要指定cascade关键字。

系统权限

  1. --系统权限就是创建数据库对象的权限。系统权限都是以create开头的权限。
  2. --例如:创建会话、创建表、创建索引、创建序列等等。
  3. --create session、create table、create index、create sequence等等。
  1. --授予用户系统权限。
  2. grant create 权限 to 用户;
  3. --只有管理员才可以授予用户系统权限。
  1. --授予用户test01创建会话、创建表的系统权限。
  2. grant create session,create table
  3. to test01;

对象权限

  1. --对象权限就是对数据库对象的操作权限。
  2. --例如:添加表数据、查询表、删除表等等操作。
  3. select、insert、update、delete、all。
  1. --授予用户对象权限。
  2. grant 操作权限
  3. on 用户1.表名
  4. to 用户2;
  1. --授予用户test01查询和插入scott用户的emp表的权限。
  2. grant select,insert
  3. on scott.emp
  4. to test01;

查看用户权限

  1. dba_sys_privs:保存所有用户的系统权限;
  2. dba_tab_privs:保存所有用户的对象权限;
  1. select *
  2. from dba_sys_privs
  3. where grantee ='TEST01';
  4. select *
  5. from dba_tab_privs
  6. where grantee ='TEST01';

回收权限

  1. --回收用户的系统权限:
  2. revoke create 权限 from 用户;
  3. --回收用户的对象权限:
  4. revoke 操作 on 用户1.表名 from 用户2;
  1. revoke create table
  2. from test01;
  3. revoke insert
  4. on scott.emp
  5. from test01;

角色

角色就是一组权限的集合。

角色的作用:简化授权操作。

Oracle 中已存在三个重要的角色:connect 角色,resource 角色,dba 角色

使用角色

  1. 第一步:创建角色;
  2. create role 角色名;
  3. 第二步:给角色授权;
  4. grant create 权限to 角色; --授予角色系统权限
  5. grant 操作 on 用户.表名 to 角色; --授予角色对象权限
  6. 第三步:把角色赋给用户;
  7. grant 角色 to 用户;
  1. --第一步:创建角色;
  2. create role t_role;
  3. --第二步:给角色授权;
  4. grant create table
  5. to t_role; --授予角色系统权限
  6. grant select
  7. on scott.emp
  8. to t_role; --授予角色对象权限
  9. --第三步:把角色赋给用户;
  10. grant t_role
  11. to test01;

查询用户角色

  1. --dba_role_privs:保存所有用户的角色信息。
  2. select *
  3. from dba_role_privs
  4. where grantee ='TEST01';

回收角色

  1. revoke 角色名
  2. from 用户;
  1. revoke t_role
  2. from test01;

删除角色

drop role 角色名;
  1. drop role t_role;
  2. --删除角色之后,那么拥有该角色的用户就会自动地把该角色取消。

ORACLE数据库的用户权限和角色权限控制