zhufeng518 发表于 2018-9-21 11:17:34

Oracle 11g R2 用户管理

  如果想查看oracle系统中存在用户可以查看dba_users视图

  如果使用sqlplus查询需要提前格式化
  SQL> col username for a20
  SQL> col account_status for a20
  SQL> col default_tablespace fora20
  SQL> set linesize 120
  SQL> set pagesize 120
  SQL> select username,account_status,default_tablespace from dba_users;
  USERNAME      ACCOUNT_STATUS         DEFAULT_TABLESPACE
  MGMT_VIEW            OPEN                      SYSTEM
  SYS                  OPEN            SYSTEM
  SYSTEM                        OPEN                      SYSTEM
  DBSNMP                     OPEN                      SYSAUX
  SYSMAN                        OPEN                      SYSAUX
  SCOTT            OPEN            USERS
  OUTLN                        EXPIRED & LOCKED         SYSTEM
  FLOWS_FILES               EXPIRED &LOCKED         SYSAUX
  MDSYS                        EXPIRED & LOCKED         SYSAUX
  ORDSYS                         EXPIRED & LOCKED         SYSAUX
  EXFSYS                        EXPIRED & LOCKED         SYSAUX
  Oracle 用户管理---
  要想访问数据库,任何人都必须成为能够通过oracle身份验证的有效数据库用户,我们可以配置应用程序要求每个需要进行访问的个体都具有不同的数据库账户,也可以配置应用程序自身作为公共用户连接数据库并在内部处理应用程序级别的权限。无论选用哪种方法,在数据库内部都需要创建一个或多个允许操作数据的用户。
  用户与模式(schema)
  创建用户的语法:
  Create user用户名identified by 密码 default tablespace表空间 quota 大小 on 表空间;
  注意:在创建用户的时候虽然用户名写的时小写的,但是存储到数据字典的时候却是大写的,比如create user tom.如果非要使用小写的话,用户名需要使用双引号括起来 create user “tom”
  创建的用户没有任何权限,连登陆数据库的权限都没有。
  如果没有设置用户对某个表空间的配额,那么即使这个用户对该表空间有写权限,也是无法写入的。
  举例说明:
  查看HR用户的状态

  修改HR用户的密码为oracle

  手工设置过期;

  解锁用户

  举例说明oracle的授予权限和撤销权限
  在创建用户之前,创建一个表空间xxx
  创建一个表空间xxx

  create tablespace xxx datafile '/u01/xxx.dbf'>  创建用户tom

  create user tom>  查询创建的用户tom

  虽然创建的时是小写tom,但存储到数据字典中的是大写,所以查询时也需要写大写

  删除tom用户
  Drop user tom;
  create user"tom"identified by oracle;

  删除tom用户

  正确的删除方式应该是:
  drop user "tom";
  创建用户tom,默认的表空间是”XXX”,并没有指定配额,所以tom用户也无法在xxx表空间上创建对象

  使用tom用户连接数据库的结果

  SQL>conn sys/oracle as sysdba
  Drop user tom; 删除tom用户
  创建tom用户的同时指定默认的表空间是xxx,tom用户的磁盘配额是10m
  可以使用dba_ts_quotas视图查看每个用户的磁盘配额


  刚才我们测试创建的tom用户连创建会话的权限都没

  为用户授予权限
  为tom用户授予session权限
  SQL>conn sys/oracle as sysdba
  SQL> grant create session to tom;
  授权成功。
  测试一下连接

  测试tom用户是否能够创建表

  为tom用户授予创建表的权限

  创建aa表

  测试tom用户能否为表插入记录,可以插入记录了。

  撤销权限
  查看tom用户当前拥有的权限

  撤销tom用户的create table 权限

  测试tom用户能够查看SCOTT用户下的emp表

  使用sys用户连接数据库

  为tom用户授权select scott用户下的emp表的权限

  使用tom用户连接数据库

  如果对此文有什么问题的话,请加下面微信一起探讨


页: [1]
查看完整版本: Oracle 11g R2 用户管理