权限
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
用户
Oracle默认有sys和system两个SYSDBA(数据库管理员)用户,拥有最高操作权限
- 查看用户
---查看所有用户(任一用户都可以查看)
select * from all_users;
---查看当前用户的基本信息
select * from user_users;
---查看所有用户的基本信息(SYSDBA用户)
select * from dba_users;
- 创建用户(SYSDBA用户)
---create user [用户名] identified by [口令]
create user my_user identified by pwd123456;
- 删除用户(SYSDBA用户)
---drop user [用户名] cascade ---删除用户下的所有对象
drop user my_user cascade;
---drop user [用户名] ---当用户拥有对象,删除将返回一个错误值.需要先删除用户所有的对象,再删除用户.
drop user my_user;
- 修改用户密码
---alter user [username] identified by [password]
alter user my_user identified by 123456a
角色
Oracle默认有connect、resource、dba三种标准角色:
- connect角色(连接角色),拥有此角色的用户不能操作表,只对其他用户的表有访问权限(select/insert/update/delete)
- resource角色(资源角色),拥有此角色的用户可以创建和操作自己的表,并对其他用户的表有访问权限(select/insert/update/delete)
- dba(数据库管理员角色),拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力,可以创建和操作数据库结构
角色操作
- 创建角色
--create role [角色];
create role r_tspdata_qry;
- 删除角色
---drop role 角色名 ---角色相关的权限将从数据库全部删除
drop role r_tspdata_qry;
- 查看用户的角色
---查看当前用户的所有角色(任一用户)
select * from user_role_privs;
- 将角色授权给用户(DBA用户)
---grant [角色] to [用户]
grant r_sspdata_dml to aplusopr;
---将connect/resource授权给用户
grant connect,resource to my_user;
- 将角色从用户中撤销(DBA用户)
---revoke [角色] from [用户];
revoke r_sspdata_dml from aplusopr;
- 查看角色的权限
---查看所有角色的表权限(和当前用户相关的角色或者表)
select * from all_tab_privs;
---查看某角色的表权限(和当前用户相关的角色或者表)
select * from all_tab_privs where grantee = 'R_SSPDATA_DML';
- 将表的操作权限授权给角色(表的所有者或者sys用户)
---连接数据库权限
grant create session to r_connect;
---表的操作权限
grant select, insert, update, delete on TSPDATA.BANK_CARD_LIMIT to r_tspdata_dml;