如果想查看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' size100m autoextend on next 10m maxsize unlimited;
创建用户tom
create user tom identified by oracle;
查询创建的用户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用户连接数据库
如果对此文有什么问题的话,请加下面微信一起探讨