Oracle数据库—用户与角色

 

Oracle数据库—用户与角色

版权声明:版权所有,转载请注明出处.谢谢 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;

创建用户

  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.  
     
  4.  
    CONNECT 角色: –是授予最终用户的典型权利,最基本的
  5.  
    ALTER SESSION –修改会话
  6.  
    CREATE CLUSTER –建立聚簇
  7.  
    CREATE DATABASE LINK –建立数据库链接
  8.  
    CREATE SEQUENCE –建立序列
  9.  
    CREATE SESSION –建立会话
  10.  
    CREATE SYNONYM –建立同义词
  11.  
    CREATE VIEW –建立视图
  12.  
     
  13.  
     
  14.  
    RESOURCE 角色: –是授予开发人员的
  15.  
    CREATE CLUSTER –建立聚簇
  16.  
    CREATE PROCEDURE –建立过程
  17.  
    CREATE SEQUENCE –建立序列
  18.  
    CREATE TABLE –建表
  19.  
    CREATE TRIGGER –建立触发器
  20.  
    CREATE TYPE –建立类型
  21.  
     
  22.  
     
  23.  
    DBA 角色:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,
  24.  
    并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除
  25.  
     
  26.  
    grant dba to user_test;
  27.  
     
  28.  
    进入 system 用户下给用户赋予 dba 权限,否则无法正常登陆
  1.  
    –分配角色权限:
  2.  
     
  3.  
    — 授权: grant connect,resource to test01;
  4.  
    grant dba to test01;
  5.  
     
  6.  
    –撤销授权
  7.  
    — 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.  
     
  4.  
    –解锁hr测试用户
  5.  
    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.  
     
  5.  
    select *
  6.  
    from dba_tab_privs
  7.  
    where grantee =\’TEST01\’;

回收权限

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

角色

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

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

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

使用角色

  1.  
    第一步:创建角色;
  2.  
    create role 角色名;
  3.  
     
  4.  
    第二步:给角色授权;
  5.  
    grant create 权限to 角色; –授予角色系统权限
  6.  
    grant 操作 on 用户.表名 to 角色; –授予角色对象权限
  7.  
     
  8.  
    第三步:把角色赋给用户;
  9.  
    grant 角色 to 用户;
  1.  
    –第一步:创建角色;
  2.  
    create role t_role;
  3.  
     
  4.  
    –第二步:给角色授权;
  5.  
    grant create table
  6.  
    to t_role; –授予角色系统权限
  7.  
     
  8.  
    grant select
  9.  
    on scott.emp
  10.  
    to t_role; –授予角色对象权限
  11.  
     
  12.  
    –第三步:把角色赋给用户;
  13.  
    grant t_role
  14.  
    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数据库的用户权限和角色权限控制

 

 
posted on
2019-03-12 17:05 
~handsome 
阅读(2363
评论(0
编辑 
收藏 
举报

版权声明:本文为handsome-24原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/handsome-24/p/10517968.html