数据库创建用户
sqlplus /nolog;
只能在sysdba或system下修改:
conn system/123456;
创建用户:
create user sun identified by 521521;
授予其登陆权限,要不然登录不上去
grant create session to sun;
或grant CONNECT to sun;
数据库用户的管理以及用户权限的管理
- 查看所有的用户:
select * from dba_users;
- 用户密码修改(system/sysdba下):
alter user *** identified by password;
- 用户的删除:
drop user *** cascade;
- 查看用户的权限:
select * from user_role_privs;
- 用户权限的授予:
grant create table,create view,create procedure to sun;
- 分配表的查询权限给用户:
grant select on student to sun
- 移除表的查询权限给用户:
revoke select on student from sun
- 分配表的更新限给用户:
grant update on student to sun
- 用户权限的移除:
revoke create table from sun;
设置一个用户查询另一个用户中所有的表
- 创建一个角色
create role select_all_system_tab;
- 新建存储过程,存储过程在system/sysdba用户下执行
declare
cursor c_tabname is select table_name from dba_tables where owner = 'SYSTEM';--必须大写,这个是有表的用户
v_tabname dba_tables.table_name%TYPE;
sqlstr varchar2(400);
begin
open c_tabname;
loop
fetch c_tabname into v_tabname;
exit when c_tabname%notfound;
sqlstr := 'grant select on system.'||v_tabname||' to select_all_system_tab';
execute immediate sqlstr;
end loop;
close c_tabname;
end;
/
- 把角色授权给sun
grant select_all_system_tab to sun;
- 从用户sun中查询system中的表即可查到数据
select * from system.student
数据库默认的三种权限
orale用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。
1. 系统权限:系统规定用户使用数据库的权限(针对用户)
- connect:拥有该权限的用户只可以登录oracle,不可以创建实体,不可以创建数据库结构。查看该权限下具体的权限语句
select grantee,privilege from dba_sys_privs where grantee='CONNECT'
,查询得知里面就一个create session权限。 - resource:拥有该权限的用户只可以创建实体,不可以创建数据库结构。同上:RESOURCE中的权限有:
create trigger 建立触发器 create sequence 建立序列 create type 建立类型 create procedure 建立存储过程 create cluster 建立聚簇 create table 建立表 create indextype 建立索引
- dba:拥有该权限的实体,是系统最高权限,只有dba才可以创建数据库结构。
- 注意:对于普通用户授予Connect、Resource权限;对于DBA管理用户授予Connect,Resource,DBA权限。
2. 数据库对象权限:该用户对其他用户的表或视图的存取权限(针对表/视图)
角色
- 角色是权限的集合。看上面的<<设置一个用户查询另一个用户中所有的表>>,利用存储过程将system表中所有表的权限都授予了角色myrole,下次当有其他用户也需要获取system中所有表查询权限时,直接通过将角色授予用户即可,这样日后只用维护角色即可。
- 角色的创建与删除:
- 查看所有的角色:
select * from dba_role_privs;
- 查询角色拥有的权限:
select * from dba_tab_privs where grantee='角色名';
create role myrole;
–创建角色grant create session to myrole;
–将创建seesion的权限授予myrolegrant myrole to sun;
–授予sun用户myrole的角色drop role myrole;
–删除角色