• SQL Fundamentals || DCL(Data Control Language) || 用户管理&Profile概要文件


    语句

    解释

    Create user

    Creates a user(usually performed by a DBA)

    Grant

    Gives other users privileges to access the objects

    Create role

    Creates a collection of privileges, usually performed by a DBA

    Alter user

    Changes a user's password

    Revoke

    Removes privileges on an object from users

     

    用户管理

    • 用户属于Oracle对象,在Oracle 12C中创建用户要以C##开头;
    • 用户可以通过profile文件进行管理。

    如何控制用户访问

    1、身份验证,认证:Authentication

    2、授权:Authorization

    3、审计:Audit

     

    通过数据字典查询

    • 用户:dba_users
    • 每个用户空间使用配额:dba_ts_quotas
    • 查询profile文件:dba_profiles

     

     

    创建用户

    虽然在Oracle数据库之中已经提供了大量的用户,但是从安全以及维护的角度来讲,往往需要创建属于自己的用户,如果要创建用户可以利用CREATE USER语法来完成。

    语法

    CREATE USER 用户名 IDENTIFIED BY 密码 [DEFAULT TABLESPACE 表空间名称]

    [TEMPORARY TABLESPACE 表空间名称]

    [QUOTA 数字 [K | M] | UNLIMITED ON 表空间名称

     QUOTA 数字 [K | M] | UNLIMITED ON 表空间名称 ...]

    [PROFILE 概要文件名称 | DEFAULT] [PASSWORD EXPIRE] [ACCOUNT LOCK | UNLOCK]

    组成如下:

    CREATE USER 用户名 IDENTIFIED BY 密码:

    创建用户同时设置密码,但是用户名和密码不能是Oracle的保留字(例如:CREATE、DROP等)也不能以数字开头(如果要设置为数字,需要将数字使用“"”声明,例如:"999777");

    DEFAULT TABLESPACE 表空间名称:

    用户存储默认使用的表空间,当用户创建对象没有设置表空间时,就将保存在此处指定的表空间下,这样可以和系统表空间进行区分;

    TEMPORARY TABLESPACE 表空间名称:

    用户所使用的临时表空间:

    QUOTA 数字 [K | M] | UNLIMITED ON 表空间名称:

    用户在表空间上的使用限额,可以指定多个表空间的限额,如果设置为“UNLIMITED”表示不设置限额;

    PROFILE 概要文件名称 | DEFAULT

    用户操作的资源文件,如果不指定则使用默认配置资源文件;

    PASSWORD EXPIRE:

    用户密码失效,则在第一次使用时必须修改密码;

    ACCOUNT LOCK | UNLOCK:

    用户是否为锁定状态,默认为“UNLOCK”。

     

    创建表空间(数据表空间和临时表空间)

     CREATE TABLESPACE g_data

        DATAFILE '/u01/app/oracle/oradata/ora01/ g_data01.dbf' SIZE 10M ,

     '/u01/app/oracle/oradata/ora01/ g_data02.dbf' SIZE 10M

        AUTOEXTEND on NEXT 2M

        LOGGING;

     

    CREATE TEMPORARY TABLESPACE g_temp

        TEMPFILE '/u01/app/oracle/oradata/ora01/g_temp01.dbf' SIZE 50M , '/u01/app/oracle/oradata/ora01/g_temp02.dbf' SIZE 50M

        AUTOEXTEND on NEXT 2M;

    创建一个新用户

    CREATE USER C##wendy IDENTIFIED BY wendypasswd

    DEFAULT TABLESPACE G_DATA

    TEMPORARY TABLESPACE G_TEMP

    QUOTA 30M ON G_DATA

    QUOTA 20M ON users

    ACCOUNT UNLOCK

    PASSWORD EXPIRE;

     

    概要文件

    • 概要文件是一组命名了的口令和资源限制文件,管理员利用它可以直接限制用户的资源访问量或用户管理等操作
      • 创建概要文件
        • CREATE PROFILE 概要文件名称 LIMIT 命令(s)
    • 第一组:资源限制命令

    SESSION_PER_USER 数字 | UNLIMITED | DEFAULT:

    允许一个用户同时创建SESSION的最大数量;

    CPU_PER_SESSION 数字 | UNLIMITED | DEFAULT:

    每一个SESSION允许使用CPU的时间数,单位为毫秒;

    CPU_PER_CALL 数字 | UNLIMITED | DEFAULT:

    限制每次调用SQL语句期间,CPU的时间总量;

    CONNECT_TIME 数字 | UNLIMITED | DEFAULT:

    每个SESSION的连接时间数,单位为分;

    IDLE_TIME 数字 | UNLIMITED | DEFAULT:

    每个SESSION的超时时间,单位为分;

    LOGICAL_READS_PER_SESSION 数字 | UNLIMITED | DEFAULT:

    为了防止笛卡尔积的产生,可以限定每一个用户最多允许读取的数据块数;

    LOGICAL_READS_PER_CALL 数字 | UNLIMITED | DEFAULT:

    每次调用SQL语句期间,最多允许用户读取的数据库块数;

    • 第二组:口令限制命令

    FAILED_LOGIN_ATTEMPTS 数字 | UNLIMITED | DEFAULT:

    当连续登陆失败次数达到该参数指定值时,用户被加锁;

    PASSWORD_LIFE_TIME 数字 | UNLIMITED | DEFAULT:

    口令的有效期(天),默认为UNLIMITED;

    PASSWORD_REUSE_TIME 数字 | UNLIMITED | DEFAULT:

    口令被修改后原有口令隔多少天后可以被重新使用,默认为UNLIMITED;

    PASSWORD_REUSE_MAX 数字 | UNLIMITED | DEFAULT:

    口令被修改后原有口令被修改多少次才允许被重新使用;

    PASSWORD_VERIFY_FUNCTION 数字 | UNLIMITED | DEFAULT:

    口令效验函数;

    PASSWORD_LOCK_TIME 数字 | UNLIMITED | DEFAULT:

    帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数;

    PASSWORD_GRACE_TIME 数字 | UNLIMITED | DEFAULT:

    口令过期后,继续使用原口令的宽限期(天)。

    • 定义一个概要文件

    CREATE PROFILE c##wendy_profile LIMIT

    CPU_PER_SESSION 10000

    LOGICAL_READS_PER_SESSION 20000

    CONNECT_TIME 60

    IDLE_TIME 30

    SESSIONS_PER_USER 10

    FAILED_LOGIN_ATTEMPTS 3

    PASSWORD_LOCK_TIME UNLIMITED

    PASSWORD_LIFE_TIME 60

    PASSWORD_REUSE_TIME 30

    PASSWORD_GRACE_TIME 6 ;

    • 本概要文件的组成说明如下所示:

    CPU_PER_SESSION 10000:

    每个SESSION所允许占用CPU的最长时间为:100秒;

    LOGICAL_READS_PER_SESSION 20000:

    每个SESSION最多允许读取20000个数据块;

    CONNECT_TIME 60:

    每个SESSION最多允许连接60分钟;

    IDLE_TIME 30:

    一个SESSION最大空闲时间为30分钟;

    SESSIONS_PER_USER 10:

    一个用户最多可以创建10个SESSION连接;

    FAILED_LOGIN_ATTEMPTS 3:

    每个用户登陆错误为3次;

    PASSWORD_LOCK_TIME UNLIMITED:

    超过3次登录错误,则密码被长期锁定;

    PASSWORD_LIFE_TIME 60:

    每60天修改一次密码;

    PASSWORD_REUSE_TIME 30:

    为防止新旧口令一致,所以旧口令在30天之后才可以继续使用;

    PASSWORD_GRACE_TIME 6 :

    口令失效后,给用户6天可以继续使用旧口令的宽限期。

     

    创建用户时指定概要文件

    CREATE USER c##wendy IDENTIFIED BY hello

    PROFILE c##wendy_profile ;

    配置已存在用户使用的概要文件

    ALTER USER c##wendy PROFILE C##WENDY_PROFILE;

    修改概要文件

    ALTER PROFILE c##wendy_profile LIMIT

    CPU_PER_SESSION 1000

    PASSWORD_LIFE_TIME 10 ;

    如果不需要使用PROFILE文件,也可以删除,但是如果此时已在一个PROFILE中定义了用户,就需要加上CASCADE参数.删除掉

    DROP PROFILE c##wendy_profile CASCADE;

    维护用户

    修改c##wendy的密码为:hellojava

    ALTER USER c##wendy IDENTIFIED BY hellojava ;

    将c##wendy用户设置为锁定状态

    ALTER USER c##wendy ACCOUNT LOCK ;

    将c##wendy用户解锁

    ALTER USER c##wendy ACCOUNT UNLOCK ;

    让c##wendy密码失效

    ALTER USER c##wendyPASSWORD EXPIRE ;

    修改c##wendy用户的表空间配额

    ALTER USER c##wendy

    QUOTA 20M ON system

    QUOTA 35M ON users ;

    删除用户

    当某一个用户不再需要时,可以通过DROP语句进行用户的删除。

    删除用户语法

    DROP USER 用户名 [CASCADE] ;

    删除c##wendy用户

    DROP USER c##wendy ;

     

  • 相关阅读:
    Anaconda+Vscode+opencv3环境打造
    关于AXI4-Stream Infrastucture IP的学习
    Xilinx的License问题
    IOBUF的使用
    Vscode的学习
    关于ZYNQ 7 processing system IP的设置导出与导入
    使用zynq verification IP进行系统验证
    使用AXI Verifcation IP进行系统验证
    MIG IP学习笔记
    Git的GUI工具sourcetree的使用
  • 原文地址:https://www.cnblogs.com/thescentedpath/p/DCLUSER.html
Copyright © 2020-2023  润新知