SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER SYSASM
----------------------------- ---------- ---------- ----------
SYS TRUE TRUE FALSE
创建用户只能由sys用户完成,或者拥有CREATE USER权限的用户。
CREATE USER user_name IDENTIFIED BY password
DEFAULT TABLESPACE tbs_name
TEMPORARY TABLESPACE temp_tbs_name
QUOTA tbs_size ON tbs_name
PASSWORD EXPIRE
ACCOUNT LOCK|UNLOCK
QUOTA子句为用户在表空间上指定空间配额,可以KB、MB等为单位,或UNLIMITED指定为无限制的空间配额,或授予用户UNLIMITED TABLESPACES系统权限。
SQL>DROP USER user_name;
但是当用户下存在对象时,需要使用CASCADE选项进行删除:
SQL>DROP USER user_name CASCADE;
此时创建了用户并不能进行登录,需要对用户赋予相应权限之后才能进行登录。
SQL> conn test1/test@lsjcom
ERROR:
ORA-01045: 用户 TEST1 没有 CREATE SESSION 权限; 登录被拒绝
系统权限 |
说明 |
Create cluster |
在自己的模式中创建簇的权限 |
Create procedure |
在自己的模式中创建存储函数、存储过程、程序包的权限 |
Create session |
登录数据库的权限 |
Create table |
在自己的模式中创建表的权限 |
Create tablespace |
在自己的模式中创建表空间的权限 |
Unlimited tablespace |
在任意表空间都有无限空间配额的权限 |
Create trigger |
在自己的模式中创建触发器的权限 |
Create user |
创建用户的权限 |
Create view |
在自己的模式中创建视图的权限 |
对象权限 |
说明 |
ALTER |
修改表和序列的权限 |
SELECT |
对数据库对象中的数据的查询权限 |
INSERT |
对数据库对象中的数据插入的权限 |
DELETE |
对数据库对象中的数据删除的权限 |
UPDATE |
对数据库对象中的数据更新的权限 |
REFERENCES |
可以与一个表建立关联关系的权限,在授予权限时可以指定列,也可以不指定 |
EXECUTE |
执行存储函数、存储过程和程序包的权限 |
RENAME |
重命名数据库对象的权限 |
SQL>GRANT 权限,… TO user,… [WITH ADMIN OPTION];
为用户授予对象权限的语法格式如下:
SQL>GRANT 权限(列名),… ON 对象 TO user,… [WITH ADMIN OPTION]
其中WITH ADMIN OPTION子句使得权限的获得者可以将权限再分配给其他用户。
SQL>REVOKE 权限,… FROM user,…
回收用户对象权限的语法格式如下:
SQL>REVOKE 权限,… ON 对象 FROM user,…;
当回收所有权限时,可以使用REVOKE ALL
权限类型 |
数据字典视图 |
说明 |
系统权限 |
system_privilege_map |
当前数据库中已经定义的所有系统权限 |
dba_sys_prvis |
任何用户所具有的系统权限(sys用户) |
|
user_sys_privs |
用户自己所拥有的系统权限 |
|
session_privs |
一个用户在当前会话中所具有的权限 |
|
对象权限 |
dba_tab_privs |
任何用户所具有的对象权限 |
dba_col_privs |
任何用户在列上所具有的权限 |
|
user_tab_privs |
用户自己所拥有的对象权限 |
|
user_col_privs |
用户自己所拥有的列的权限 |
角色名称 |
所包含权限 |
CONNECT |
CREATE SESSION |
RESOURCE |
CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE. |
DBA |
可通过DBA_SYS_PRIVS数据字典查看 |
SQL>CREATE ROLE role_name;
2、
删除角色:
SQL>DROP ROLE role_name;
3、
向角色授予权限
SQL>GRANT 权限,… TO role_name [WITH ADMIN OPTION];
授予对象权限:
SQL>GRANT 权限,… ON 对象 TO role_name;
4、
回收权限:
SQL>REVOKE ………… FROM………
5、
角色的分配:
SQL>GRANT role_name TO user1;
6、
角色的回收
SQL>REVOKE role_name FROM user;
7、
与角色有关的数据字典
SQL>CREATE PROFILE profile_name LIMIT
口令限制
SQL>ALTER SYSTEM set RESOURCE_LIMIT=TRUE;
1)
SESSION_PER_USER:一个用户所允许的并发会话数目
SQL>CREATE USER user_name IDENTIFIED pwd PROFILE pro_name;
SQL>ALTER USER user_name PROFILE pro_name;
删除PROFILE:
SQL>DROP PROFILE pro_name [CASCADE/*若PROFILE已经指定给了用户*/]