Oracle用户管理

用户管理

1、创建用户:

CREATE USER 用户名 IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间名
TEMPORARY TABLESPACE 临时表空间名
QUOTA 100M|unlimited  ON 表空间名		#在创建用户时指定其所在默认表空间和分配表空间限额或无限制
PROFILE DEFAULT;
#(默认PROFILE或自己指定已经配置好的PROFILE)

如果没有指定永久表空间与临时表空间,用户会被系统自动分配到USER表空间和TEMP临时表空间(这两个表空间会在实例创建时被系统自动创建)。

查询用户及其所在表空间:

SELECT username, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username = '用户名';

2、用户授权:

1、授予用户连接权限:
#用户在刚刚创建完毕后是不能连接数据库的,因为他缺失缺失‘create session’权限
GRANT CREATE SESSION TO 用户名;

此外,有一个很少有人知道的创建新用户方法,使用GRANT CONNECT语句。
示例:(创建nice1用户)

SQL> GRANT CONNECT to nice1 IDENTIFIED BY nice1;

Grant succeeded.

SQL> conn nice1/nice1	#之前这个用户在数据库中是不存在的
Connected.
SQL> show user
USER is "NICE1"			#该用户确实被创建

2、授予用户对表ddl权限和dml权限(对表得增删改查等操作)
#授予用户修改表权限:
SQL> GRANT ALTER ON TABLE_NAME TO USER;
#授予用户删除表权限:
SQL> GRANT DELETE ON TABLE_NAME TO USER;
#授予用户更新表权限:
SQL> GRANT UPDATE ON TABLE_NAME TO USER;
#授予用户插入表权限
SQL> GRANT INSERT ON TABLE_NAME TO USER;
查看当前用户所拥有的权限:
select * from session_privs;
查看某一个用户所拥有的系统权限:
select * from dba_sys_privs where GRANTEE='USERNAME';

3、表空间限额:

如果新用户使用的是默认表空间USERS,在该表空间上未授予任何限额(quota),默认状态时,不给予用户任何表空间上的空间限额,因此该用户不能在表空间上创建任何对象,必须明确的为用户分配表空间限额,通常是在创建用户时给其分配表空间限额。

#为用户授予一个表空间上的空间限额
ALTER USER diana
QUOTA 100M ON USERS;

如果根本就不想让某一个用户在数据库中创建对象,就不要给他分配空间限额,如果他是一个在某个表空间上就具有空间限额的用户,则可以使用ALTER USER语句设置限额为0,如果在所有表空间上用ALTER USER语句分配0限额,则该用户已经创建的对象仍然保留,只是再也不能创建任何新对象了,现有对象的尺寸也不能增长,因为已经收回了表空间限额。

#让某一个用户在所有表空间上具有无限的空间使用权,需要授予用户UNLIMITED TABLESPACE权限
SQL> alter user USERNAME quota unlimited on TABLESPACE_NAME;

User altered.

#查看用户对表空间配额(-1即无限制表空间配额)
SQL> select tablespace_name,username,max_bytes from  DBA_TS_QUOTAS where username='USERNAME';

#下面这种方式是全局性的. 即修改用户多所有表空间的配额
SQL> grant unlimited tablespace to anqing;

Grant succeeded.

如果想让用户创建他自己的表空间,则必须通过GRANT CREATE TABLESPACE TO USERNAME命令允许他创建表空间,在他创建的表空间中创建数据库对象,则在这些表空间上不需要授予空间限额,可以使用DBA_TS_QUOTAS视图查看分配给一个用户的各表空间限额的使用情况,最大配额需要查询max_bytes字段。
示例:

SQL> select tablespace_name, username, bytes from dba_ts_quotas;

TABLESPACE_NAME 	   USERNAME 			   BYTES
---------------------- ----------------------- ------
SYSAUX			       FLOWS_FILES			       0
SYSAUX			       OLAPSYS				 5373952
USERS			       DIANA				       0
SYSAUX			       SYSMAN				76021760
USERS			       HR				 	 1638400
SYSAUX			       APPQOSSYS			       0

6 rows selected.

SQL> 

3、更改用户:

1、更改用户密码:
ALTER USER USERNAME IDENTIFIED BY PASSWORD;

#或在用户登录时使用SQLplus中PASSWORD命令更改自己的密码
SQL> show user
USER is "DIANA"
SQL> password
Changing password for DIANA
Old password: *****
New password: ***** 
Retype new password: *****
Password changed
SQL> 
2、更改用户默认表空间:
ALTER USER USERNAME DEFAULT TABLESPACE TABLESPACE_NAME;
3、更改用户默认临时表空间:
ALTER USER USERNAME TEMPORARY TABLESPACE TABLESPACE_NAME;

4、删除用户:
DROP USER命令不仅能删除用户,而且还删除用户所拥有的对象,如果数据库中其他对象依赖于这个用户,则不能简单的使用DROP USER命令,必须附加CASCADE参数,它删除、用户的模式和依赖对象

DROP USER USERNAME [CASCADE];

至此结束,部分内容会后续补充,有问题欢迎留言,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值