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

Oracle 11g R2 用户管理

如果使用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> selectusername,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用户的状态

Oracle 11g R2 用户管理

修改HR用户的密码为oracle

Oracle 11g R2 用户管理

    

手工设置过期;

Oracle 11g R2 用户管理

解锁用户

Oracle 11g R2 用户管理

举例说明oracle的授予权限和撤销权限

在创建用户之前,创建一个表空间xxx

创建一个表空间xxx

create tablespace xxx datafile '/u01/xxx.dbf' size100m autoextend on next 10m maxsize unlimited;

创建用户tom

create user tom identified by oracle;

查询创建的用户tom

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

删除tom用户

Drop user tom;

create user"tom"identified by oracle;

Oracle 11g R2 用户管理

删除tom用户

Oracle 11g R2 用户管理

正确的删除方式应该是:

drop user"tom";

创建用户tom,默认的表空间是”XXX”,并没有指定配额,所以tom用户也无法在xxx表空间上创建对象

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

SQL>connsys/oracle as sysdba

Drop user tom; 删除tom用户

创建tom用户的同时指定默认的表空间是xxx,tom用户的磁盘配额是10m

可以使用dba_ts_quotas视图查看每个用户的磁盘配额

Oracle 11g R2 用户管理

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

为用户授予权限

为tom用户授予session权限

SQL>conn sys/oracle as sysdba

SQL> grant create session to tom;

 

授权成功。

测试一下连接

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

创建aa表

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

 撤销权限

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

Oracle 11g R2 用户管理

撤销tom用户的create table 权限

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

使用sys用户连接数据库

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理

使用tom用户连接数据库

Oracle 11g R2 用户管理

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

Oracle 11g R2 用户管理


相关文章: