//给角色授权
conn system/manager;
grant create session to 角色名 with admin option;
conn scott/tiger@数据库;
grant select on emp to 角色名;
grant update on emp to 角色名;
grant delete on emp to 角色名;
//分配角色给用户,应该使用dba用户
conn system/manager;
create user xxx identified by 密码;
grant 角色名 to 用户名 with admin option;
//删除角色
conn system/manager;
drop role 角色名; //角色被删除后,
//显示所有角色
select * from dba_roles;
//显示角色所拥有的系统权限
select privilege, admin_option from role_sys_privs where role='角色名'
//显示角色所有的对象权限
dba_tab_privs
//显示用户所有的角色,及默认角色
select grant_role,default_role from dba_role_privs where gurantee='用户名'
//精细访问控制
策略,函数,不同客户端查询时,oracle会在查询后自动增加where语句
dba,数据库管理员
//安装升级,建库、表、表空间、视图、索引,指定并实施备份和恢复计划,权限管理、调优、故障排除,项目开发、编写sql语句、存储过程、触发器、规则、约束、包,数据库安全
sys董事长、system是总经理
sys:所有oracle数据库的基表和动态视图,任何用户都不得手工修改,拥有dba、sysdba、sysoper角色或权限
必须以sysdba或sysoper角色登陆,不能以normal形式登陆
system:次级用户数据,拥有dba、sysdba角色或权限,不能创建/删除数据库,不能查看用户数据
dba用户只能在启动数据库实例后进行操作
sysdba>sysoper>dba
shutdown;//关闭数据库
startup;//启动数据库
show parameter;//数据库初始化相关参数,200多个
逻辑备份/
物理备份/数据库关闭状态
导出表、导出方案、导出数据库
导出方案:把用户所有东西都导出了
导出整个数据库:把用户和system的所有方案都导出
//在导入导出的时候,要到oracle的bin目录下进行操作
//导出其他用户的表,需要dba权限或者exp_full_database
exp userid=system/manager @myOral1 table=(scott.emp,scott.dept) file=d:/e1.dmp;
exp userid=scott/tiger@myOra1 tables=(emp) file=d:e1.dmp rows=n //rows=n只导出表结构
exp userid=scott/tiger@myOra1 tables=(emp) file=d:e1.dmp direct=y //direct=y直接导出,比较快
exp userid=scott/tiger@myOra1 owner=scott file=d:e1.dmp //owner=scott 导出方案
system可以导出除了sys的任何用户的方案
//导出数据库,full=y全部导出,inctype=complete增量
exp userid=system/manager@myOral1 full=y inctype=complete file=D:/xx.dmp
导入表、方案、数据库
imp userid=scott/tiger@myOral1 tables(emp) file=d:/dd.dmp //导入表
imp userid=scott/tiger@myOral1 tables(emp) file=d:/dd.dmp rows=n //rows=n只导入表结构
//导入数据库,full=y全部导入,inctype=complete增量
imp userid=system/manager@myOral1 full=y inctype=complete file=D:/xx.dmp
数据字典:记录了数据库的系统信息,所有者是sys用户,只读表和视图的组合,用户只可以执行查询(select)操作,其余操作是系统自动完成
由数据字典基表和数据字典视图组成,用户只能查询视图,视图包括user_xxx, all_xxx, dba_xxx
select table_name form user_tables; //当前用户所拥有的表
select table_name from all_tables; //当前用户可以访问到的所有的表
select table_name from dba_tables; //所有方案的表,必须是dba用户或者拥有select_any_table系统权限
在创建用户的时候,会把用户权限和角色信息存入数据字典,
select * from dba_users; //所有数据库用户的详细信息
dba_sys_privs //所有用户具有的系统权限,数据字典视图
dba_table_privs //用户具有的对象权限,数据字典视图
dba_col_privs //用户具有的列权限,数据字典视图
dba_roll_privs //所有用户所具有的角色,数据字典视图
select * from dab_roll_privs; //查询所有角色
// 一个角色包含多少权限,系统权限,对象权限
select * from system_privilege_map order by name; //所有系统权限
select dinstinct privilege from dba_tab_privs; //所有对象权限
select * from dba_sys_privs where grantee='CONNECT'; //CONNECT 角色的系统权限
select * from dba_tab_privs where grantee='CONNECT'; //CONNECT 角色的对象权限
select * from role_sys_privs where role='CONNECT'; //CONNECT 角色的权限 role_sys_privs和dba_sys_privs存的数据有相同点
select * from dba_role_privs where gurantee='SCOTT'; //scott用户具有哪些权限
select * from global_name; //myoral.us.oracle.com 显示当前数据库的全称
select * from dict where comments like '%grant%'; //显示当前用户可以访问的所有数据字典的视图
动态性能视图 v_$ 开头,一般是sys所有