zoukankan      html  css  js  c++  java
  • [oracle] 系统权限管理

    1 利用超级用户连接到数据库登录

    sqlplus / as sysdba
    or
    slqplus SYS/SYSPWD as sysdba

    这两个命令的效果是一样的,都是以sysdba的身份使得SYS管理员连接到数据库。前提是windows登录账户有管理oracle的权限

    2 查看当前登录用户

    SQL> show user;
    USER 为 "SYS"

    3 创建用户

    SQL> create user lisi identifiled by lisi;
    用户已创建。

    创建用户并指定其表空间

    create user lisi identified by lisi
    default tablespace lisi temporary tablespace lisi_temp;

    删除用户

    //级联删除用户及其对象
    drop user lisi cascade; 

    锁定用户

    alter user lisi account lock;

    解锁用户

    alter user lisi account unlock;

    修改用户密码

    alter user lisi indentifiled by newPwd;

    新用户登录

    //新用户登录被拒绝
    C:Userssredcat>sqlplus lisi/lisi
    
    SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 12月 30 11:08:16 2013
    Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
    
    ERROR:用户没有登录权限
    ORA-01045: user LISI lacks CREATE SESSION privilege; logon denied

    由于缺乏 CREATE SESSION 的权限也就是登录的权限被拒绝登录,此时要赋予其登录的权限。

    4 授予新用户权限

    //授权
    SQL> grant create session to lisi;
    授权成功。

    新用户再次登录成功

    //登录新用户
    C:Userssredcat>sqlplus lisi/lisi
    SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 12月 30 11:11:00 2013
    Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
    
    连接到:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options

    此时仅有登录权限,如需执行数据库操作还需要其他的权限

    //授权其他权限
    SQL> grant create table to lisi;
    授权成功。

    授予用户DBA的角色权限

    GRANT DBA TO lisi; 

    5 建表

    SQL> create table mytable(id int);
    create table mytable(id int)
    *1 行出现错误:
    ORA-01950: 对表空间 'USERS' 无权限

    出现错误,此时需要取消表空间对新用户的限制

    //使用表空间时没有任何限制
    SQL> grant unlimited tablespace to lisi;
    授权成功。

    6 执行数据库操作

    SQL> create table mytable(id int);
    表已创建。
    
    SQL> insert into mytable values(1);
    已创建 1 行。
    
    SQL> select * from mytable;
            ID
    ----------
             1
    
    SQL> drop table mytable;
    表已删除。

    备注:当用户有创建表和使用空间的权限时,如果该用户创建了自己的表,那么该用户对自己的表就具有了增删改查的权限了。无需另外赋予其他的权限。

    7 回收权限

    SQL>  revoke create table from lisi;
    撤销成功。
    
    //此时再次创建表就会报错
    SQL> create table mytable(id int);
    create table mytable(id int)
    *1 行出现错误:
    ORA-01031: 权限不足

    8 查看用户当前拥有的权限【视图:user_sys_privs】

    SQL> select * from user_sys_privs;
    USERNAME                       PRIVILEGE                                ADM
    ------------------------------ ---------------------------------------- ---
    LISI                           CREATE SESSION                           NO
    LISI                           UNLIMITED TABLESPACE                     NO
    
    SQL> grant create table to lisi;
    授权成功。
    
    SQL> select * from user_sys_privs;
    USERNAME                       PRIVILEGE                                ADM
    ------------------------------ ---------------------------------------- ---
    LISI                           CREATE SESSION                           NO
    LISI                           CREATE TABLE                             NO
    LISI                           UNLIMITED TABLESPACE                     NO

    备注:

    ① 所有权限的赋予和回收都是SYS/SYSTEM这种DBA角色来执行的,普通用户没有该权限。

    ② 应该遵循权限最小化的原则来为新用户分配权限。

    一个分配大权限的例子:

    GRANT CREATE USER,DROP USER,ALTER USER,CREATE ANY VIEW,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字

    ③ 当遗忘数据库用户甚至是DBA的密码时,使用下面两种方法可以进入SQL修改其密码

    //操作系统认证
    sqlplus / as sysdba

     或者

    // login without connect to server 
    C:Userssredcat>sqlplus /nolog
    
    //connect to server as sysdba for manage DB server
    SQL> conn / as sysdba
    已连接。
  • 相关阅读:
    命令行扩展功能
    bash的工作特性及其使用方法
    Linux的管理类命令及其使用方法
    命名规范
    CSS后代选择器可能的错误认识
    两个viewport的故事(第二部分)
    两个viewport的故事(第一部分)
    移动前端开发之viewport的深入理解
    mybatis 详解(五)------动态SQL
    mybatis 详解(四)------properties以及别名定义
  • 原文地址:https://www.cnblogs.com/avivaye/p/3497617.html
Copyright © 2011-2022 走看看