zoukankan      html  css  js  c++  java
  • oracle19c之用户、权限、表空间

      一、用户相关操作

      1、查询用户

    select * from dba_users; --查询全库所有的用户
    select
    * from all_users; --查询当前用户可看到的用户
    select
    * from user_users; --查询当前登录的用户

      2、创建用户(创建者需要有dba权限,用户名必须以c##开头,默认的表空间是users,新用户没有任何权限。)

    create user c##sl IDENTIFIED BY 123456;

      3、删除用户

    drop user c##sl2 cascade; --删除用户不会删除其表空间

      注意:无法删除用户C##SL3,报错“[Err] ORA-01940: 无法删除当前连接“的用户解决方法:

    select username,sid,serial#,paddr from v$session where username='C##SL3';

      

    alter system kill session '17,55857';

      4、修改密码

    alter user c##sl3 identified by 1234;

      二、权限相关操作

      a、系统权限:用户在系统层面的权限,如CREATE SESSION、SELECT ANY TABLE等不依赖于对象的权限

      b、对象权限:用户关于某个具体对象的权限,如SELECT、UPDATE、INSERT等依赖于表、视图、存储过程的权限

      c、角色:一组权限的集合

      注意:PUBLIC用户具有的权限,其他用户都会有,即修改PUBLIC用户的权限,其他用户也会对应得改变权限

      1、查看权限、角色

    select * from user_tab_privs; --当前用户具有的对象权限
    select
    * from dba_tab_privs WHERE grantee='C##SL' OR grantor='C##SL'; --全部用户具有的对象权限,查询C##SL用户的
    select
    * from user_sys_privs; --当前用户具有的系统权限
    select
    * from dba_sys_privs WHERE grantee='C##SL'; --全部用户具有的系统权限,查询C##SL用户的
    SELECT
    * FROM user_role_privs; --当前用户具有的角色
    SELECT
    * FROM dba_role_privs where grantee='C##SL'; --全部用户具有的角色,查询C##SL用户的

      注意:上面每一对查询出的结果应该一样,因为全部用户中肯定也包含当前用户,普通用户没有查询全部用户角色、权限表的权限

      2、常用权限、角色

    dba    管理员角色
    connect    连接数据库角色,能修改、删除表及数据,不能创建表
    resource  能创建表 create session 连接数据库权限 create table 建表权限 unlimited tablespace 操作表空间权限 select any table 查询任何表的权限 select on c##test.book 查询c##test用户的book表的权限

      说明:

      a、一般来说,新建的普通用户后授予connect和resource角色就好了、如果是管理员需要再授予dba角色。

      b、对于普通用户,如果操作表时报错“[Err] ORA-01950: 对表空间 'xxx' 无权限”,需要执行一下语句

    alter user c##sl3 quota unlimited on 表空间名;

      3、赋予权限、角色

    grant create session to c##sl;
    grant create session to c##sl with admin option; --授予的权限,c##sl用户可以再授予其它用户,具有传递性
    grant create session,select any table to c##sl;

      4、撤销权限、角色

    revoke select any table from c##sl;
    revoke select any table,update any table from c##sl;

      三、表空间

      Oracle的数据存储在数据文件(data files)中,表空间只是一个逻辑概念,把一组数据文件放一起就是称为表空间。表空间与数据文件是一对多的关系,用户与表空间是多对多的关系。

      1)查询表空间

    select * FROM dba_tablespaces;--查询所有表空间
    select
    * from dba_data_files;--查询表空间对应数据文件的地址
    select username,default_tablespace from dba_users where username
    ='C##SL';--查询用户c##sl的表空间
    SELECT--查看表空间详细信息 FILE_NAME as 数据文件,TABLESPACE_NAME as 表空间名称, AUTOEXTENSIBLE as 自动扩展,STATUS as 状态,MAXBYTES as 可扩展最大值, USER_BYTES as 已使用大小,INCREMENT_BY as 自动扩展增量 FROM dba_data_files

      2)创建表空间

    create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M;--固定大小100M
    
    create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M autoextend on next 5M
    maxsize unlimited;--初始大小100M,每次自动扩展5M,最大无限制
    
    create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M autoextend on next 5M 
    maxsize 2048M;--初始大小100M,每次自动扩展5M,最大扩展到2048M

      3)修改表空间

    alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' resize 100M; --大小设为100M
    alter database datafile
    '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend off; --关闭自动增长
    alter database datafile
    '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on; --打开自动增长
    alter database datafile
    '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on next 200M; --每次自动增长200m
    alter database datafile
    '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on next 200M maxsize 2048M;
    --每次自动增长200m,最大不超过2G

      4)为用户指定表空间

    alter user c##sl default tablespace sl

      5)删除表空间

    drop tablespace sl;--删除空表空间,不删除物理文件
    drop tablespace sl including contents;
    --删除表空间,不删除物理文件
    drop tablespace sl including contents and datafiles;
    --删除表空间,也删除物理文件
    drop tablespace sl including contents and datafiles cascade constraint;
    --如果其它表空间有外键依赖,也删除表空间

      备注:如果只删除了表空间,忘记删数据文件,然后再补删数据文件,可按如下操作:

    create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf'--没有指定size,只是表空间名、文件路径与原来的一致
    drop tablespace sl including contents and datafiles;--重新执行操作
  • 相关阅读:
    strtok() and strtod()
    quernation,euler,rotationmatrix之间的相互转换
    Ubuntu16.04+Ros+Usb_Cam ORB SLAM2
    windows10下VS2013搭建opencv2.4.9吐血之作
    深度学习之numpy.poly1d()函数
    matplotlib动态图subplots()和subplot()不同及参数
    python学习之matplotlib绘制动图(FuncAnimation()参数)
    javascipt——jQuery
    Javascript——(2)DOM
    linux nc 命令详解
  • 原文地址:https://www.cnblogs.com/javasl/p/14882468.html
Copyright © 2011-2022 走看看