oracle解读.docx

上传人:b****4 文档编号:5332583 上传时间:2023-05-08 格式:DOCX 页数:31 大小:40.26KB
下载 相关 举报
oracle解读.docx_第1页
第1页 / 共31页
oracle解读.docx_第2页
第2页 / 共31页
oracle解读.docx_第3页
第3页 / 共31页
oracle解读.docx_第4页
第4页 / 共31页
oracle解读.docx_第5页
第5页 / 共31页
oracle解读.docx_第6页
第6页 / 共31页
oracle解读.docx_第7页
第7页 / 共31页
oracle解读.docx_第8页
第8页 / 共31页
oracle解读.docx_第9页
第9页 / 共31页
oracle解读.docx_第10页
第10页 / 共31页
oracle解读.docx_第11页
第11页 / 共31页
oracle解读.docx_第12页
第12页 / 共31页
oracle解读.docx_第13页
第13页 / 共31页
oracle解读.docx_第14页
第14页 / 共31页
oracle解读.docx_第15页
第15页 / 共31页
oracle解读.docx_第16页
第16页 / 共31页
oracle解读.docx_第17页
第17页 / 共31页
oracle解读.docx_第18页
第18页 / 共31页
oracle解读.docx_第19页
第19页 / 共31页
oracle解读.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

oracle解读.docx

《oracle解读.docx》由会员分享,可在线阅读,更多相关《oracle解读.docx(31页珍藏版)》请在冰点文库上搜索。

oracle解读.docx

oracle解读

1.sys和system用户的区别

system用户只能用normal身份登陆em。

除非你对它授予了sysdba的系统权限或者syspoer系统权限。

sys用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。

--

最重要的区别,存储的数据的重要性不同

sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。

sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。

system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。

system用户拥有普通dba角色权限。

“SYSOPER”权限,即数据库操作员权限,权限包括:

 打开数据库服务器  关闭数据库服务器

 备份数据库      恢复数据库

 日志归档        会话限制

“SYSDBA”权限,即数据库管理员权限,权限包括:

 打开数据库服务器  关闭数据库服务器

 备份数据库      恢复数据库

 日志归档      会话限制

 管理功能      创建数据库

 2.normal、sysdba、sysoper区别

normal是普通用户,只有通过被sys授权之后才可以对数据库进行操作

sysdba拥有最高的系统权限

sysoper主要用来启动、关闭数据库,sysoper登陆后用户是public

sysdba登陆后是sys,而且只能是SYS登录sysdba.

[html] viewplaincopy

1.SQL> conn / as sysdba  

2.已连接。

  

3.SQL> grant sysoper to test;  

4.授权成功。

  

5.SQL> conn test/test as sysoper;  

6.已连接。

  

7.SQL> show user  

8.USER 为"PUBLIC"  

9.SQL> conn test/test as sysdba  

10.已连接。

  

11.SQL> show user  

12.USER 为"SYS"  

13.SQL>  

系统权限

sysdba

sysoper

区别

Startup(启动数据库)

startup

Shutdown(关闭数据库)

shutdown

alterdatabaseopen/mount/backup

alterdatabaseopen/mount/backup

改变字符集

none

createdatabase(创建数据库)

None不能创建数据库

dropdatabase(删除数据库)

none

createspfile

createspfile

alterdatabasearchivelog(归档日志)

alterdatabasearchivelog

alterdatabaserecover(恢复数据库)

只能完全恢复,不能执行不完全恢复

拥有restrictedsession(会话限制)权限

拥有restrictedsession权限

可以让用户作为sys用户连接

可以进行一些基本的操作,但不能查看用户数据

登录之后用户是sys

登录之后用户是public

 

 

system如果正常登录,它其实就是一个普通的dba用户,但是如果以assysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。

因此在assysdba连接数据库后,创建的对象实际上都是生成在sys中的。

其他用户也是一样,如果assysdba登录,也是作为sys用户登录的,看以下实验:

[html] viewplaincopy

1.SQL> create user strong identified by strong;  

2.用户已创建。

  

3.SQL> conn strong/strong@magick as sysdba;  

4.已连接。

  

5.SQL> show user;  

6.USER 为 "SYS"  

7.SQL> create table test(a int);  

8.表已创建。

  

9.SQL> select owner from dba_tables where table_name='test';  

10.未选定行 //因为创建表时oracle自动转为大写,所以用小写查的时候是不存在的;  

11.SQL> select owner from dba_tables where table_name='TEST';  

12.OWNER  

13.------------------------------  

14.SYS  

3.dba和sysdba的区别

dba、sysdba这两个系统角色有什么区别呢 

在说明这一点之前我需要说一下oracle服务的创建过程

·创建实例

·启动实例

·创建数据库(system表空间是必须的)

启动过程

·实例启动

·装载数据库

·打开数据库

sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,

只要实例启动了,它就已经存在,以sysdba身份登陆,装载数据库、打开数据库

只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础,dba只是个角色而已.

4.在查询用户角色表的时候,没有看到sysdba等角色,为什么?

[html] viewplaincopy

1.sys@WENCHAOD> select role from dba_roles order by role    

2.  2  ;  

3.  

4.ROLE  

5.------------------------------  

6.ADM_PARALLEL_EXECUTE_TASK  

7.APEX_ADMINISTRATOR_ROLE  

8.AQ_ADMINISTRATOR_ROLE  

9.AQ_USER_ROLE  

10.AUTHENTICATEDUSER  

11.CONNECT  

12.CSW_USR_ROLE  

13.CTXAPP  

14.CWM_USER  

15.DATAPUMP_EXP_FULL_DATABASE  

16.DATAPUMP_IMP_FULL_DATABASE  

17.DBA  

18.DBFS_ROLE  

19.DELETE_CATALOG_ROLE  

20.EJBCLIENT  

21.EXECUTE_CATALOG_ROLE  

22.EXP_FULL_DATABASE  

23.GATHER_SYSTEM_STATISTICS  

24.GLOBAL_AQ_USER_ROLE  

25.HS_ADMIN_EXECUTE_ROLE  

26.HS_ADMIN_ROLE  

27.HS_ADMIN_SELECT_ROLE  

28.IMP_FULL_DATABASE  

29.JAVADEBUGPRIV  

30.JAVAIDPRIV  

31.JAVASYSPRIV  

32.JAVAUSERPRIV  

33.JAVA_ADMIN  

34.JAVA_DEPLOY  

35.JMXSERVER  

36.LOGSTDBY_ADMINISTRATOR  

37.MGMT_USER  

38.OEM_ADVISOR  

39.OEM_MONITOR  

40.OLAPI_TRACE_USER  

41.OLAP_DBA  

42.OLAP_USER  

43.OLAP_XS_ADMIN  

44.ORDADMIN  

45.OWB$CLIENT  

46.OWB_DESIGNCENTER_VIEW  

47.OWB_USER  

48.RECOVERY_CATALOG_OWNER  

49.RESOURCE  

50.SCHEDULER_ADMIN  

51.SELECT_CATALOG_ROLE  

52.SPATIAL_CSW_ADMIN  

53.SPATIAL_WFS_ADMIN  

54.WFS_USR_ROLE  

55.WM_ADMIN_ROLE  

56.XDBADMIN  

57.XDB_SET_INVOKER  

58.XDB_WEBSERVICES  

59.XDB_WEBSERVICES_OVER_HTTP  

60.XDB_WEBSERVICES_WITH_PUBLIC  

61.  

62.55 rows selected.  

63.  

64.sys@WENCHAOD>   

解释:

dba是Oracle里的一种对象,Role和User一样,是实实在在存在在Oracle里的物理对象,而sysdba是指的一种概念上的操作对象,在Oracle数据里并不存在。

 

所以说这两个概念是完全不同的。

dba是一种role对应的是对Oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已。

 

[html] viewplaincopy

1.--grant dba 和grant sysdba的差别   

2.--dba是正真的role,所以grant后在dba_role_privs里有记录,而revoke后就没有了   

3.  

4.SQL>  grant dba to testuser;   

5.SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;   

6.GRANTEE                        GRANTED_ROLE                  ADM DEF   

7.—————————— —————————— — —   

8.TESTUSER                      RESOURCE                      NO  YES   

9.TESTUSER                      CONNECT                        NO  YES   

10.TESTUSER                      DBA                            NO  YES   

11.SQL>  revoke dba from testuser;   

12.SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;   

13.GRANTEE                        GRANTED_ROLE                  ADM DEF   

14.—————————— —————————— — —   

15.TESTUSER                      RESOURCE                      NO  YES   

16.TESTUSER                      CONNECT                        NO  YES   

17.  

18.--对于sysdba是不会出现这个情况的,因为他不是正真的role   

19.SQL> grant sysdba to testuser;   

20.SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;   

21.GRANTEE                        GRANTED_ROLE                  ADM DEF   

22.—————————— —————————— — —   

23.TESTUSER                      RESOURCE                      NO  YES   

24.TESTUSER                      CONNECT                        NO  YES   

那么这个是sysdba是这么记录的叻, 

我在一个文章和帖子里对对sysdba的登录有过详细的叙述 

对了,sysdba是登录时候需要的他是和remote_login_passwordfile关联的 

我们可以查询v$pwfile_users; 

如下:

 

SQL>select*fromv$pwfile_users; 

USERNAME           SYSDBSYSOP 

———————————–—– 

SYS              TRUE TRUE 

SYSTEM            TRUE FALSE 

TESTUSER           TRUE FALSE 

当你grantsysdba后,在这里就多了一条 

下面我们revoke一下,再来看 

SQL>revokesysdbafromtestuser; 

SQL>select*fromv$pwfile_users; 

USERNAME           SYSDBSYSOP 

———————————–—– 

SYS              TRUE TRUE 

SYSTEM            TRUE FALSE 

没有叻。

 

所以在这里dba和sysdba是根本不同概念了。

 

有关sysdba登录的解释可以查看帖子 

5.Oracle数据库登录一些命令及解释

1、启动oracle数据库:

 

从root切换到oracle用户进入:

su-oracle

进入sqlplus环境,nolog参数表示不登录:

sqlplus/nolog

以管理员模式登录:

sqlplus/assysdba

启动数据库

startup;

停止数据库

shutdownimmediate

远程连接数据库

sqlplus/nolog

connsys/sys@ip:

1521/orainstanceassysdba

也可以直接运行:

dbstart

#启动数据库的脚本

dbshut

#停止数据库的脚本

2、数据库监听:

启动监听服务:

lsnrctlstart

停止监听服务:

lsnrctlstop

查看监听状态:

lsnrctlstatus

3、用户权限管理:

注:

以下命令都需要DBA权限。

创建用户:

createuserittbankidentifiedby123456;

赋予用户的表空间权限:

alteruserittbankdefaulttablespaceittbank;;

或者两条命令合并为:

createuserittbankidentifiedby123456defaulttablespaceittbank;

注:

刚刚创建完的新用户是没有任何权限的,甚至连登录数据库的权限都没有。

这时使用conn用户名/密码会提示没有权限。

在新建一个用户之后还要对这个用户进行授权操作。

当然是要使用有能力授权的用户,如sys、system。

角色是指由系统权限集合。

通常给某个用户授予权限时如果没有角色存在的话,那么需要一条一条的操作,角色的存在就是使得授权变得很方便。

通常一个角色由多个系统权限组成。

常用的角色有三个connect(7种权限)、dba、resource(在任何表空间建表)。

授予用户管理权限:

grantconnect,resource,dbatoittbank;

删除用户

dropuser“name”cascade;

注:

cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数。

“name”的引号有无都是一样的。

修改用户密码

passwordittbank(在用户已经连接的情况下)或者

alteruserittbankidentifiedbynewpassword

注意:

在给其他用户修改密码时,需要具有DBA的权限或拥有alteruser的系统权限。

查看当前用户的角色

select*fromuser_role_privs;

select*fromsession_privs;

查看当前用户的系统权限和表级权限

select*fromuser_sys_privs;

select*fromuser_tab_privs;

查询用户表

selectnamefromdba_users;

修改用户口令

alteruser"name"identifiedby"password";

显示当前用户

showuser;

 

6.ORACLE用户权限管理笔记整理

selectusernamefromdba_users; 查询系统所有用户

select*fromdba_userswhereusername='XXXX';查询用户相关信息

select*fromdba_roles;  查询系统所有角色

DBA_ROLE_PRIVS    查询某个用户具有的角色或者某个角色下的有哪些用户

select*fromdba_role_privswheregrantee='SYS';

select*fromdba_role_privswheregranted_role='RESOURCE';

DBA_SYS_PRIVS 查询某个用户具有的系统权限

selectgrantee,privilegefromdba_sys_privswheregrantee='XXXX';

ROLE_SYS_PRIVS显示授予角色的系统权限

select*fromrole_sys_privswhererole='RESOURCE';查询RESOURCE角色相关的权限

ROLE_TAB_PRIVS显示授予角色的表权限

管理用户、角色和权限的DBA视图:

DBA_USERS    提供用户的信息

DBA_ROLES    显示数据库中所有角色

DBA_COL_PRIVS  显示列级对象授权

DBA_ROLE_PRIVS  显示用户及其角色

DBA_SYS_PRIVS  显示被授予系统权限的用户

DBA_TAB_PRIVS  显示用户及他们在表上的权限

ROLE_ROLE_PRIVS 显示授予角色的角色

ROLE_SYS_PRIVS  显示授予角色的系统权限

ROLE_TAB_PRIVS  显示授予角色的表权限

SESSION_PRIVS  显示允许用户使用的权限

SESSION_ROLES  显示当前允许用户使用的角色

select*fromsession_privs;查询用户本身拥有的权限

select*fromuser_role_privs;查询用户本身拥有的角色

select*fromdba_sys_privswheregrantee='CONNECT';查询角色所拥有的权限

select*fromrole_sys_privswhererole='CONNECT';查询角色所拥有的权限

7.权限讲解

 

首先我应该分清权限和角色,大致讲讲

权限

oracle提供两种权限(系统权限sysprivileges和对象(实体)权限objectprivileges) 

角色:

是具有名称的一组系统权限和对象权限的集合

一、权限分类:

系统权限:

系统规定用户使用数据库的权限。

(系统权限是对用户而言)。

实体权限:

某种权限用户对其它用户的表或视图的存取权限。

(是针对表或视图而言的)。

 

二、系统权限管理:

1、系统权限分类:

DBA:

 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:

拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:

拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:

授予connect,resource权限。

对于DBA管理用户:

授予connect,resource,dba权限。

 

2、系统权限授权命令:

[系统权限只能由DBA用户授出:

sys,system(最开始只能是这两个用户)]

授权命令:

SQL>grantconnect,resource,dbato 用户名1[,用户名2]...;

[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。

]

例:

SQL>connectsystem/manager

SQL>Createuseruser50identifiedbyuser50;

SQL>grantconnect,resourcetouser50;

查询用户拥有哪里权限:

SQL>select*fromdba_role_privs;

SQL>select*fromdba_sys_privs;

SQL>select*fromrole_sys_privs;

删除用户:

SQL>dropuser 用户名 cascade; //加上cascade则将用户连同其创建的东西全部删除

 

3、系统权限传递:

增加WITHADMINOPTION选项,则得到的权限可以传递。

SQL>grantconnect,resorcetoqwithadminoption; //可以传递所获权限。

 

4、系统权限回收:

系统权限只能由DBA用户回收

命令:

SQL>Revokeconnect,resourcefromuser50;

 

说明:

1)如果使用WITHADMINOPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2