zoukankan      html  css  js  c++  java
  • 【Oracle11g】04_用户和权限管理

    1.默认用户

    以上只是默认用户的其中三个,还有其他默认用户

    SYS用户:数据库中所有数据字典表和视图都存储在 SYS 模式中。SYS用户主要用来维护系统信息和管理实例。
    SYSTEM用户:SYSTEM 是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等。
    SCOTT用户:SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建。
    scott是oracle公司第一个员工的名字。

    2.创建用户

    • 要连接到Oracle数据库,就需要创建一个用户账户。
    • 每个用户都有一个默认表空间和一个临时表空间

    语法:

    CREATE USER username
    IDENTIFIED BY password
    [DEFAULT TABLESPACE tablespace]
    [TEMPORARY TABLESPACE tablespace];
    

    注意:创建用户设置的密码不能以数字开头。

    3.profile概要文件

    通过https://localhost:1158/em可以打开em,然后找到【服务器】TAB,即可看到下图

    C:UsersQIN>sqlplus /nolog
    
    SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 1 21:23:22 2020
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    SQL> conn system/admin@orcl
    已连接。
    SQL> create user test1 identified by test1;
    
    用户已创建。
    SQL> alter user test1 profile prol;
    
    用户已更改。
    

    此时,在em中已经生成了profile文件,如下图:可以看到设置的参数同时也生效了。

    根据上图可以知道,登录失败2次,则账户锁定2天。因此,做以下测试

    SQL> conn test1/abc@orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied
    
    
    警告: 您不再连接到 ORACLE。
    SQL> conn test1/abcd@orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied
    
    
    SQL> conn test1/abcde@orcl
    ERROR:
    ORA-28000: the account is locked
    

    测试发现,确实是登录失败2次,则锁定2天。

    账户被锁定了,那么如何解锁呢?

    SQL> conn system/admin@orcl
    已连接。
    SQL> alter user test1 account unlock;
    
    用户已更改。
    
    

    同时,也可以通过概要文件设置登录密码的失效时间与最大容忍天数(即密码最多宽限2天)

    SQL> alter profile prol limit password_life_time 10 password_grace_time 2;
    
    配置文件已更改
    

    删除prfile:drop profile prol cascade; 删除后,test1用户的profile会指向default。

    4.权限

    • 权限指的是执行特定命令或访问数据库对象的权利
    • 权限有两种类型,系统权限和对象权限
      • 系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
      • 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作

    4.1 系统权限

    授予用户权限,可以是系统权限或者对象权限。

       GRANT privilege [,privilege…]
       TO  user [, user|role, PUBLIC…] 
        [WITH ADMIN OPTION];
    说明:包含了WITH ADMIN OPTION,只能是系统权限。
       收回系统权限REVOKE
    例:REVOKE create session FROM test1;
    

    那么,系统权限被收回时,会不会把级联收回下游用户的权限呢?通过下图即可说明

    首先,我们创建了test2用户,并且授予with admin option,那么,此时的test2用户即可对新建用户授予create session的权限,新建test3用户并授予create session权限,此时,test3是可以登录的,但是当收回test2的权限的时候,test3还是可以正常登录,说明系统权限在收回的时候,不会级联收回。

    4.2 对象权限

    对象权限:访问某个用户的特定对象(如表、视图等)的对象权限(select on scott.student)

     GRANT object_privilege [columns…]
       ON  object  TO  user [, user|role, PUBLIC…] 
        [WITH GRANT OPTION];
    
      收回对象权限REVOKE:
       REVOKE privilege     ON object 
       FROM {user|role|PUBLIC};
    例:revoke select on scott.student from test2;
    

    授予对象权限可以精确到列的权限上

    grant update(ename,sal) on scott.emp to wang;
    

    与系统权限不一样的是,对象权限被收回权限的时候,会级联收回权限,通过下图可以看出

    补充知识:
    select * from tab -- 查看当前用户中所有的表(TAB是一个同义词)
    select * from dba_sys_privs d where d.grantee = 'TEST1' --查看test1用户的系统权限

    5.角色

    角色管理:角色是一组相关权限的组合,可以将权限授予角
    色,再把角色授予用户,以简化权限管理。
    (1)创建角色CREATE ROLE,应该具有CREATE ROLE系统权限。
    CREATE ROLE role_name;
    (2) 授予角色权限,可以是系统权限或者对象权限。
    GRANT privilege TO ROLE;
    例: grant create session ,create any table, drop any table to role1;
    (3) 将角色授予用户
    GRANT role TO user;
    例: grant role1 to test2;
    (4) 从用户收回角色
    REVOKE role FROM user;

    5.1 查看角色权限

    1)查看角色具有什么对象权限

    select * from dba_sys_privs where role='ROLE1' 
    

    2)查看角色具有什么对象权限

    select * from dba_tab_privs
    

    3)查看用户具有什么样的对象权限

    select * from dba_tab_privs d where d.grantee='TEST1'
    

    4)查看用户具有什么样的系统权限

    select * from dba_sys_privs d where d.grantee='TEST1'
    

    6.更改和删除用户

    --ALTER USER 命令可用于更改口令 
    ALTER USER wang IDENTIFIED BY wangnewpwd; --修改 wang用户的密码
    
    --DROP USER 命令用于删除用户 
    DROP USER wang [CASCADE];  --删除 wang用户模式
    
    
  • 相关阅读:
    动态规划_树形DP
    动态规划_区间DP
    Git
    动态规划_状态机与状态压缩DP
    Mybatis
    3.UIViewController详解
    Flutter boost实现原理简介
    FFmpeg笔记(四)
    Xcode-FFmpeg环境搭建
    FFmpeg(一)
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12616811.html
Copyright © 2011-2022 走看看