使用oracle数据库的业务一般都是按用户进行分割,这里需要提前创建好要使用的表空间和profile,如果不指定表空间,默认使用system表空间,这样很容易吧system表空间占满。所以,每次建新用户,必须指定用户使用的默认表空间。
以下介绍一下oracle用户管理方面的相关知识
- 创建一个新用户,一般使用sys或者有权限创建系统用户的用户执行,如下
CREATE USER xxx --指定用户名称
IDENTIFIED BY password --指定用户密码
DEFAULT TABLESPACE data_ts --指定默认使用的表空间
QUOTA 100M ON test_ts --指定表空间使用限额
QUOTA 500K ON data_ts --指定另外一个表空间使用限额
TEMPORARY TABLESPACE temp_ts --指定临时表空间
PROFILE clerk; --指定profile
新建的用户无法连接数据库,需要赋予connect权限,和resource
grant connect,resource to xxx
- 如果创建用户后,想修改用户相关的参数,可以使用alter user语句,如下:
ALTER USER avyrros
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE data_ts
TEMPORARY TABLESPACE temp_ts
QUOTA 100M ON data_ts
QUOTA 0 ON test_ts
PROFILE clerk;
- 改变非系统用户的密码
SQL> password qman; --password命令修改qman的密码
Changing password for qman
New password:
Retype new password:
Password changed
也可以通过alter user语句修改密码
ALTER USER andy IDENTIFIED BY password
- 修改sys账户的密码,一般不建议使用alter user命令修改账户密码,由于sys是系统用户,内部会调用改用户,可能会发生死锁现象。
如果使用ALTER USER更改SYS用户密码,并且实例初始化参数REMOTE_LOGIN_PASSWORDFILE已设置为SHARED,则不能更改SYS密码。 ALTER USER语句会失败,并出现ORA-28046:SYS不允许密码更改错误.
可以使用orapwd命令创建口令文件,如下:
orapwd file='orapworcl'
Enter password for SYS: new_password
或者直接写参数创建
orapwd file=<fname> password=<password> entries=<users> force=<y/n> nosysdba=<y/n>
- 删除用户,不要删除sys和system用户,这个是数据库内部的用户,如果删除,会导致数据库损坏。删除用户后,该用户下面的所有的对象也会被删除,所以一定要清楚了解该用户下的对象是否可以删除,可通过以下语句查看
SELECT OWNER, OBJECT_NAME FROM DBA_OBJECTS WHERE OWNER LIKE 'ANDY';
如果可以删除,直接使用drop use人命令
DROP USER andy CASCADE;