一、创建用户
a) 语法
Create user 用户名
Identified by 密码
[Default tablespace 表空间命]
[Temporary tablespace 表明空间]
[Quota 表空间大小 on 表空间名]
[Password epire]
[Account {lock|unlock}]
b) 用户的创建
i. 创建一个test用户,密码是1234,并将默认表空间配额为10M
Create user test
Identified by 1234
Default tablespace users
Quota 10M on users
注意事项:
1、 要创建用户,则首先应使用管理员进行登录。
2、 创建之后登陆会出现ERROR:ORA-01045:user TEST lacks CREATE SESSION privilege;logon denied ;提示test用户没有创建session(会话)权限,意味着没有登录权限
二、授权
a) 创建session的权限
i. 语法:grant 权限1,权限2 …to 用户名
ii. 示例:grant create session to test
b) 用户角色
i. 角色是权限的集合
ii. Oracle中提供了两个角色,可以直接将这两个角色给用户
1. Connect角色
2. Resource角色
3. 权限付给test --> grant connect,resource to test;
三、用户的锁定
a) 语法:alter user 用户名 account lock|unlock
b) 解锁:alter user test account unlock
c) 加锁:alter user test account lock
四、密码失效
a) 提示用户第一次连接的时候需要修改密码,让用户的密码到期
b) Alter user test password expire;
五、对象授权
a) Grant 权限(select 、update、insert delete ) on schema.Table to 用户
b) 表示吧scott用户下的emp表的权限给test:Grant select on scott.emp to test;
c) 把相关的所有权限付给test:grant all on scott.Emp to test;
d) 也可以把一列的控制(update/insert):grant update(ename) on emp to test;
六、权限回收
a) Revoke 权限 on schema.Table from 用户
b) 示例:Reboke select on scott.emp from test;
七、查看权限
a) Oracle中数据字典视图可分为3大类:用前缀区别:user、all和dba;
i. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ii. ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
iii. DBA_*:有关整个数据库中对象的信息
注意:这里的*可以为TABLES, INDEXES, OBJECTS, USERS等。
b) 查看用户权限
i. 查看所有用户:
1. select * from dba_user;
2. select * from all_users;
3. select * from user_users;
ii. 查看用户系统权限:
1. select * from dba_sys_privs;
2. select * from all_sys_privs;
3. select * from user_sys_privs;
iii. 查看用户对象权限:
1. select * from dba_tab_privs;
2. select * from all_tab_privs;
3. select * from user_tab_privs;
iv. 查看所有角色:
1. select * from dba_roles;
v. 查看用户所拥有的角色:
1. select * from dba_role_privs;
2. select * from user_role_privs;
vi. 查看当前用户的缺省表空间
1. select username,default_tablespace from user_users;
vii. 查看某个角色的具体权限,如grant connect,resource,create session,create view to TEST;查看RESOURCE具有那些权限,用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
八、删除用户
a) Drop user test;
b) 如果该用户下面已经存在表等一些数据库对象。则必须级联删除
c) Drop user test casecade;