Oracle数据库下用户操作
新增用户
前置条件
- 首先登陆到系统用户sys(sys用户具有创建用户的权限)。
- 然后在SQL语句输入框写入创建用户的代码。
语法
- CREATE USER user_name IDENTIFIED BY password
- [ACCOUNT LOCK|UNLOCK] lock:给用户上锁;unlock:解锁用户。(和connnect角色无关)
- [DEFAULT TABLESPACE default_tablespace] default_tablespace:用户的默认表空间,用于储存数据库对象。如果忽略此参数,则默认存储到SYSTEM表空间
- [TEMPORARY TABLESPACE temporary_tablespace]; temporary_tablespace:是临时对象默认存储的表空间,包括临时表。如果忽略此参数,则默认存储到SYSTEM表空间
示例
CREATE USER student IDENTIFIED BY 123456;创建了一个student用户,登陆密码为123456.
查看用户
查看拥有DBA权限的用户
select username,user_id,password,default_tablespace from dba_users;
查看当前登录用户
select * from user_role_privs;
通过角色控制用户权限
- Connect 临时会话角色,对于那些不需要建表的用户,通常只赋予他们CONNECT角色,拥有CONNECT角色可以与服务器建立连接会话。
- Resource 更可靠的和正式的用户可以授予RESOURCE角色.RESOURCE角色提供给用户创建表,序列,过程(procedure),触发器(tigger),索引(index)等。
- DBA 所有的系统权限,用户system和sys拥有DBA角色。
说明:
Scott拥有connect和Resource两个角色,可以应对大部分的开发场景;
Grant connect/resource/dba to Scott;
给用户分配权限
- 如果想让用户在数据库里完成一些任务,需要相应的给用户授予权限。如:如果想让用户连接到数据库,必须授予用户CREATE SESSION的系统权限。
- 授权必须通过一些特殊用户授权(例如SYSTEM),通过GRANT语句来完成。下表列出了用户可能用到的权限。
语法
- GRANT CREATE SESSION TO student;
- 给用户student分配连接的权限。
权限列表
- CREATE SESSION(连接到数据库)
- CREATE SEQUENCE
- CREATE SYNONYM
- CREATE TABLE(在用户架构中创建表)
- CREATE ANY TABLE(在任意架构中创建表)
- DROP TABLE
- DROP ANY TABLE
- CREATE PROCEDURE(创建存储过程)
- EXECUTE ANY PROCEDURE
- CREATE USER
- DROP USER
- CREATE VIEW
撤销用户权限
REVOKE CONNECT FROM Scott;