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;

创建用户

  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数据库的用户权限和角色权限控制

 

Oracle数据库---用户与角色的更多相关文章

  1. Oracle 数据库用户管理

    Oracle 数据库用户管理 Oracle 权限设置      一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...

  2. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  3. 简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS

    简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * fr ...

  4. Oracle数据库用户数据完整备份与恢复

    使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导 ...

  5. SQL SERVER服务器登录名、角色、数据库用户、角色、架构的关系

    原创链接:https://www.cnblogs.com/junfly/articles/2798023.html SQL SERVER 基础教程中关于服务器登录名.服务器角色.数据库用户.数据库角色 ...

  6. 删除oracle数据库用户

    手工删除ORACLE数据库用户时常会出现会话进程仍在使用导致删除失败的情况.需要查询会话并将会话删除才能成功将数据库用户删除,比较不方便. 适用场景 自动删除oracle数据库用户 基本知识 orac ...

  7. Linux删除ORACLE数据库用户失败提示ORA-01940解决方法

    操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...

  8. Oracle数据库用户密码设为无限期

    oracle数据库用户密码默认为180天,密码过期后将无法登陆数据库. 一.查询用户所属PROFILE SQL> SELECT username,PROFILE FROM dba_users; ...

  9. Navicat连接Oracle数据库用户权限问题

    解决Navicat连接Oracle数据库用户权限问题: 第一步:在cmd窗口运行[sqlplus], 第二步:输入Oracle的用户名和口令连接Oracle数据库, 第三步:执行授权代码,给用户授予D ...

随机推荐

  1. java第七章集合框架

    如果想存储多个人物信息可以使用数组实现但是采用数组存以下明显缺陷: 数组长度不变不能适应元素变化情况,若存储大于20个英雄信息则长度不够,若只存储10个则造成内存空间浪费.可用.length获取数组中 ...

  2. input控制输入保留一位小数

    function zlip(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 obj.val ...

  3. 编写一个lambda,接受两个int,返回它们的和

    void counter(int i, int b) { auto count = [i,b]{ return i + b; }; cout<< count(); } int main() ...

  4. rancher的Ingress的文件大小上传限制配置

    添加注释 nginx.ingress.kubernetes.io/proxy-body-size

  5. Image 图片

    随机矩阵画图 这一节我们讲解怎样在matplotlib中打印出图像.这里打印出的是纯粹的数字,而非自然图像.下面用 3x3 的 2D-array 来表示点的颜色,每一个点就是一个pixel. impo ...

  6. strncpy

    char* mstrncpy(char *dest, const char *src, size_t n){ size_t i; size_t j=n-; ; i < j && ...

  7. 【Java】a++,++a 区分记忆

    写了个例子测试: package com.xdsux.java.basetest; public class BaseTest1 { public static void main(String[] ...

  8. Scrum冲刺阶段6

    成员今日完成的任务 人员 任务 何承华 学习后端设计 陈宇 后端设计 丁培辉 学习后端设计 温志铭 信息界面设计 杨宇潇 信息界面界面设计 张主强 服务器构建学习 成员遇到的问题 人员 问题 何承华 ...

  9. 别人的Linux私房菜(18)认识系统服务(daemon)

    完成服务service的程序称为daemon.完成计划性的服务程序如crond是一个daemon. 早期的System V的init管理daemon操作中,系统内核首先调用init,然后init运行系 ...

  10. python提示AttributeError: 'NoneType' object has no attribute 'append'【转发】

    在写python脚本时遇到AttributeError: 'NoneType' object has no attribute 'append' a=[] b=[1,2,3,4] a = a.appe ...