当前位置:文档之家› 数据库管理员笔记(dba)

数据库管理员笔记(dba)

用户管理

系统所有的用户:select * from dba_users;all_user;
1、权限:
1、系统权限 :用户对数据库的相关权限
所有的系统权限:select * from system_privilege_map; 166个,
当前用户的系统权限:SELECT * FROM USER_SYS_PRIVS;
所有用户的系统权限:SELECT * FROM dba_SYS_PRIVS;
2、对象权限 :用户对其他用户的数据对象操作的权限 ,包括:(select ,insert ,update,delete,all,create index等)
所有的对象权限:select * from table_privilege_map;
所有用户对象权限对照:select * from dba_tab_privs where grantee ='WJJ';
2、角色:(系统权限的集合)
1、预定义角色 :系统已定义好的,如:connect,dba,resource 等。
系统所有角色:--select * from dba_roles;
角色与系统权限对照表:select * from role_sys_privs;
角色与对象权限对照: select * from role_tab_privs;
用户有几个角色:--select * from user_role_privs;
用户对应系统权限: select * from user_sys_privs;
查看用户的所有权限:select * from session_privs;
2、自定义角色 :用户自已定义。
3、身份:一个用户可以有两个身份:select * from V$pwfile_users --有sysdba,sysoper
4、模式:模式是数据库对象的集合 。模式对象是数据库数据的逻辑结构 。
(把数据库对象用模式分开成不同的逻辑结构) 。
用户是用来连接数据库对象 。而模式用是用创建管理对象的 。模式跟用户在oracle 是一对一的关系 。
表空间:
创建一个用户:(dba 权限)
create user wjj identified by m123 -- 用户已创建
给用户修改密码:password
SQL> password wjj
更改 wjj 的口令
新口令:

删除用户:(dba 权限)
drop wjj

-------在删除用户时:注意:如果删除的这个用户已经创建有表,那么就需要带一个参数cascade

给新创建的用户授权角色:
grant connect to wjj;
此时wjj这个用户就可以登录数据库了。但是现在不能够创建表
grant resource to wjj
可以建立表了。

如何查询别的用户的表?
需要对象权限的控制:grant select on emp to wjj;--scott执行

select * from scott.emp

收回权限:
revoke select on emp from wjj --收回对象权限(表)
revoke resource from wjj --收回角色
----如何查看用户拥有那些权限???
select * from dba_role_privs where grantee='SCOTT'; --用户有几个角色。
select * from dba_sys_privs where grantee='SCOTT'; --用户的系统权限。
select * from role_sys_privs where role ='RESOURCE'; --角色有那个系统权限。

// 对权限的维护

希望wjj 把emp的select 的权限 授权给别人。
如果是对象权限就在后面加上with grant option
grant select on emp to wjj with grant option
如查是系统权限

(角色),后面加:with admin option
grant connect to wjj with admin option


用户口令管理机制(dba):
用 profile 文件来管理
1、创建profile文件
create profile aaa limit failed_login_attempts 3 password_lock_time 2;
尝试3次后算定2天(最小单位是天)
2、alter user wjj profile aaa

用户wjj错误密码3次后,帐号就锁定2天。

如何解锁:
alter user wjj account unlock;


终止口令(dba):
create profile bbb limit password.life.time 10 password_grace_time 2;
用户10天修改一次密码,过了第10天,系统在2天内每次登录时提示,2天后锁定用户
alter user wjj profile bbb;

//oracle 不允许太简单的密码,或修改成之前相同的密码值、

create profile bbb limit password.life.time 10 password_grace_time 2 password_reuse_time 10;
用户10天修改一次密码,过了第10天,系统在2天内每次登录时提示,2天后锁定用户,10后自动解锁。


删除profile文件

删除profile文件后,所有用profile文件对用户的约素消失。
drop profile aaa -----参数cascade

-------------------------------------
数据字典(基表和动态视图组成):
-------------------------------------
1、 数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。
数据字典的所有者是:sys用户。
用户只能在数据字典上执行select 的操作,而其维护和修改是由系统自动完成的。
数据字典由数据字典基表和 数据字典视图(动态性能视图)组成
字典视图记载了例程启动后的想关信息。(数据库经常变化的一些信息)
字典视图分为:user_***,all_***,dba_*** 三个种类
例:user_tables 查看用户自已的所有表
All_tables 查看用户可能访问的所有表
Dba_tables 必须是dba角色或有select any table系统权限的用户,
用system用户查询时会返回system,sys,scott….等方案所对应数据库的表。
2、 用户名,权限,角色
在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或角色时,oracle会将权限和角色的信息存放到数据字典里。
通过dba_users,可以显示所有数据库用户的详细信息;
如:dba_sys_privs 用户具有的系统权限。
Dba_tab_privs 用户具有的对象权限。
Dba_col_privs 用户具有的列权限。
Dba_role_privs 用户具有的角色权限。
3、 当前用户可以访问的所有数据字典视图:
Select * from dict where comments like '%grant%';
当前数据库的全称:
select * from global_name;
4、 数据字典记录了oracle数据库的所有系统信息,通过查询字典可以获得系统信息。
5、 动态性能视图记录了当前例程的活动信息。
当oracle server 服务启动时系统就会建立动态视图。
当oracle server 服务关闭时系统就会删除

动态视图。
动态性能视图都 是以:v_$开始的名子,并oracle 为每个动态性能视图提供了同义词,以V$开始。
如:v_$datafile 同义词:v$datafile
V_$session 同义词:v$session
动态性能视图所有者为:sys,一般由dba或特权用户来查询视图。

----------------------------
备份
----------------------------
在oracle里务份分为逻辑备份与物理备份两种。
逻辑备份:用工具:export 的工具将数据对象的结构和数据导出到文件的过程。只能在数据库open状态下进行。
Exp 命令有7个选项:
Userid: 用于指定执行操作的用户名,口令,连接串。
Table :用于指定导出的表名。
Owner:用于指定导出的方案名。
Full=y:用于指定执行导出的数据库名子。
Inctype:用于指定执行导出操作的增量类型。
Rows:用于指定执行操作是否要导出表中的数据。
File:用于指定导出文件。
Direct =y :直接导出。(比较快,处理大表)
1、 导出表:
Exp userid=wjj/alrmany@orcl tables=(scott.emp) file=d:\emp.dmp
Exp userid=scott/tiger@orcl tables=(emp,dept) file=d:\emp.dmp
导出表的结构:exp 新遥尖=scott/tiger@orcl tables=(emp) file=d:\emp.dmp row=n

2、 导出方案:
必须要dba权限,exp_full_datebase的权限。
Exp userid=scott/tiger@orcl owner=scott file=d:\scott.dmp
Exp userid=system/alrmany@orcl owner=(scott,wjj) file = d:\scottwjj.dmp
3、 导出数据库:
必须要dba权限,exp_full_datebase的权限。
Exp userid =sysem/alrmany@orcl full=y inctype=complete file=x.dmp
4、 导入表:
Imp userid=wjj/alrmany@orcl tables=(emp) file=d:\emp.dmp
(将emp表导入wjj方案中)
Imp userid=system/manager@orcl table=(emp) file=d:\emp.dmp touser=scott
(用system用户把emp表导入到scott那个表)
Imp userid=wjj/alrmany@orcl tables=(emp) file=d:\emp.dmp rows=n
(只导入表结构)
Imp userid=wjj/alrmany@orcl tables=(emp) file=d:\emp.dmp ignore=y
(将emp表导入wjj方案中,如果表存在,只导入数据(多次执行会重复插入数据))
5、 导入方案:
Imp userid =scott/tiger file=d:\xxx.dmp
Imp userid =system/alrmany file=d:\xxx.dmp fromuser=system touser=scott
6、 导入数据库(相当于迁移数库):
Imp userid=system/alrmany full=y file=d:\xxx.dmp

相关主题
文本预览
相关文档 最新文档