精华内容
下载资源
问答
  • 通过sys用户执行 <p>grant sysdba to system; 报错。求大神帮助</p>
  • 1 概述 在ORACLE中有一种特殊级别权限——sysdba权限sysdba权限拥有ORACLE系统的最高权限,有打开数据库、关闭数据库、恢复数据库等高级权限,我们在工程安装和日常维护中经常涉及到的sys用户就有sysdba权限。...

     

    1 概述

      在ORACLE中有一种特殊级别权限——sysdba权限,sysdba权限拥有ORACLE系统的最高权限,有打开数据库、关闭数据库、恢复数据库等高级权限,我们在工程安装和日常维护中经常涉及到的sys用户就有sysdba权限。sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在。以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础。

      Sysdba用户有两种认证方式:操码作系统认证和密文件认证,本文主要阐述的是sysdba权限不同认证方式的含义和配置说明。

    2 Sysdba登陆方式

     

    六种登陆方法(采用操作系统认证):

      1. sys/www as sysdba

      2. sys / as sysdba

      3. sys as sysdba

      4. / as sysdba

      5. sqlplus /as sysdba

      6. sqlplus /nolog

      前4种是在SQL*PLUS登陆框的用户名栏目中输入,后2种是DOS环境下直接输入。

    3 查看具有sysdba权限的用户

      以sys用户登陆Oracle,执行select * from V_$PWFILE_USERS;可查询到如下结果:

     

       SQL> select * from V_$PWFILE_USERS;
      USERNAME SYSDBA SYSOPER
      ------------------------------ ------ -------
      SYS TRUE TRUE

      (何为sysoper权限:SYSOPER特权也是Oracle数据库的一种特殊权限。当用户具有该特权时,可以启动数据库,关闭数据库,但是不能建立数据库,也不能执行不完全恢复,这也是和SYSDBA的最大区别,另外,也不具有DBA角色的任何权限。建立了Oracle数据库后,默认情况下只有SYS用户具有SYSOPER特权。需要注意的是,如果要以SYSOPER身份登陆,要求OS用户必须具有OSOPER角色(Windows平台:ORA_OPER角色),当以SYSOPER身份登陆时,必须带有AS SYSOPER选项。)

    4 相关参数含义

    (Sysdba权限认证过程主要涉及ORACLE中的相关参数和配置文件说明如下

      4.1 SQLNET.AUTHENTICATION_SERVICES

      该参数在$ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora目录下, 是ORACLE的网络配置文件,SQLNET.AUTHENTICATION_SERVICES参数可以通常设置为:

      ■ NONE 采用密码文件认证方式,需要输入用户名称和密码。

      ■ NTS 采用WINDOWS的安全认证方式(WINDOWS专用);

      ■ ALL 可以采用密码和操作系统认证方式。

      4.2 remote_login_passwordfile

      该参数可以设置为:

      ■ NONE 采用操作系统方式认证,不需要用户名称密码;

      ■ EXCLUSIVE 采用密码文件方式认证,且密码文件只能被一个实例使用;

      ■ SHARED 采用密码文件方式认证, 密码文件可以被多个实例使用;

      (注意:如果密码文件被多个实例使用,密码文件的名称为去掉sid后的文件名称如pwd.ora)

    5 各种认证的设置过程

      要由于windows和UNIX平台下的设置不尽相同,下面分别进行阐述:

      5.1 WINDOWS下的设置:

      5.1.1 操作系统认证设置步骤:

      ■目前登陆的操作系统用户属于ora_dba组,一般在安装ORACLE时候创建;

      ■ Sqlnet.ora文件中的设置,需要设置SQLNET.AUTHENTICATION_SERVICES= (NTS),表示通过NT进行认证;

      ■ ORACLE参数文件中:remote_login_passwordfile(可以设置为NONE,EXCLUSIVE,SHARED),操作系统认证时候,可以随便设置。

      5.1.2 通过密码文件进行认证设置步骤:

      ■ 密码文件的路径在$ORACLE_HOME/DATABASE/PWDSID.ORA,SID为实际的数据库SID;

      ■ Sqlnet.ora文件中的设置, SQLNET.AUTHENTICATION_SERVICES可以不用设置,可以注释掉,如果只想用密码认证需要设置为NONE;

     

    ■ ORACLE参数文件中参数:remote_login_passwordfile,必须设置为EXCLUSIVE,SHARED.

      5.2 UNIX下的认证

      5.2.1 通过操作系统认证设置:

      ■ 目前登陆的操作系统用户属于dba组,一般在安装ORACLE时候建立;

      ■ Sqlnet.ora文件可以设置为默认不管,但是不能设置为NONE。

      ■ ORACLE参数文件中:remote_login_passwordfile(可以设置未NONE,EXCLUSIVE,SHARED),操作系统认证时候,可以随便设置。

      5.2.2 通过密码文件进行认证:

      ■密码文件的路径在$ORACLE_HOME/dbs/orapwsid,SID为实际的数据库SID;

      ■ Sqlnet.ora文件不需要设置。

      ■ RACLE参数文件中参数:remote_login_passwordfile,必须设置为EXCLUSIVE,SHARED.)

      (注意:不管怎样如果remote_login_passwordfile设置为exclusive,shared数据库启动过程会查找密码文件,设置为none不需要)

    6 重建密码文件

      一般在sys用户的密码丢失或者想增加sysdba权限用户的个数的时候,需要重新创建密码文件。

      创建密码文件命令和解释

      orapwd file=filename password=sys用户密码 entries=entries.

      ■ File 为密码文件的名称,可以指定路径,也可以不指定路径,不指定路径的情况,windows下该密码文件的路径为:$ORACLE_HOMEDATABASEpwdsid.ora,unix下的路径为:$ORACLE_HOME/dbs/orapwsid (sid为实例名),该参数必须输入;

      ■ Password 为该用户的密码,该参数必须输入;

      ■ Entries表示最大允许的超级用户的个数,该参数为可选参数,按自己的需要输入。

      Example:orapwd file=orapwora92 password=manager entries=3。

     

     

     

    展开全文
  • Oracle数据库sysdba、sysoper权限问题

    千次阅读 2017-09-10 20:35:35
    sysdba权限: ●启动和关闭操作 ●更改数据库状态为打开/装载/备份,更改字符集 ●创建数据库 ●创建服务器参数文件spfile ●日志归档和恢复 ●包含了“会话权限”权限 sysoper权限: ●启动和关闭操作 ●更改...

    Oracle 把sysdba、sysoper分别的赋予不同的管理权限

    sysdba权限:
    ●启动和关闭操作
    ●更改数据库状态为打开/装载/备份,更改字符集
    ●创建数据库
    ●创建服务器参数文件spfile
    ●日志归档和恢复
    ●包含了“会话权限”权限

    sysoper权限:
    ●启动和关闭操作
    ●更改数据库状态为打开/装载/备份
    ●创建服务器参数文件SPFILE
    ●日志归档和恢复
    ●包含了“会话权限”权限

    展开全文
  • 源数据库:Oracle11.2.0.1 目标数据库:Oracle11.2.0.4 问题现象:由于数据库是用RMAN全库备份恢复到异机上的,造成无法用sys用户无法用SQL客户端登陆,一直提示ORA-01017:ivalid username/password:login denied...

    问题描述:异机迁移后sys用户无法用SQL客户端登陆,但是system和其他用户可以登录

    源数据库:Oracle11.2.0.1   目标数据库:Oracle11.2.0.4

    问题现象:由于数据库是用RMAN全库备份恢复到异机上的,造成无法用sys用户无法用SQL客户端登陆,一直提示ORA-01017:ivalid username/password:login denied但是system和其他用户可以登录如下图:

     

    分析问题原因:由于数据库是用RMAN全库备份恢复到异机上的,这个大家应该能想到,因为RMAN不能备份静态的参数文件、口令文件,虽然异机迁移成功但是sys用户无法用SQL客户端登录,system和其它用户可以,经查看sys和system 的状态是一样并无差异,用户状态也都是解锁状态如下图:

    SQL>select * from dba_users where username like 'SYS%';

    然后查这两个参数问题就要明显:
    SQL> show parameter password;
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    remote_login_passwordfile            string      EXCLUSIVE
    SQL>
    remote_login_passwordfile参数是EXCLUSIVE状态说明允许远程访问的,(VALUE= NONE)时是禁止关闭远程访问。
    
    查看v$pwfile_users返回为空
    SQL> select * from v$pwfile_users;
    
    no rows selected
    SQL>
    正常情况下查询v$pwfile_users返回应该是这样的
    SQL> select * from v$pwfile_users;
    USERNAME                       SYSDB SYSOP SYSAS
    ------------------------------ ----- ----- -----
    SYS                            TRUE  TRUE  FALSE
    SQL>
    这里大家已经猜到了用为没有数据库没有口令文件或是口令文件与数据库没有同步造成的,然后通过给sys用户授予sysdba权限,此问题就更明显了。
    SQL> grant sysdba to sys;
    grant sysdba to sys
    *
    ERROR at line 1:
    ORA-01994: GRANT failed: password file missing or disabled
    SQL>
    看到到这里想必大家已经找到了问题的所在,就是没有口令文件或是没有将数据库的口令与本地口令文件同步的原因下面我们创建口令文件并重新授权即可解决问题步骤如下:
    
    创建新的口令文件,口令文件默认路径在$ORACLE_HOME/dbs目录下,格式为 ora+pwd+sid
    $orapwd file='$ORACLE_HOME/dbs/orapworcl' password='oracle' entries=10 force=y
    $ ls -lh
    total 2302992
    -rw-r--r--. 1 oracle oinstall     2851 May 15  2009 init.ora
    -rw-r-----. 1 oracle oinstall       24 Jul 29 07:20 lkORCL
    -rw-r-----. 1 oracle oinstall     2048 Aug  4 07:29 orapwdorcl
    -rw-r-----. 1 oracle oinstall     2560 Aug  4 07:34 orapworcl
    -rw-r-----. 1 oracle oinstall 10043392 Jul 29 15:33 snapcf_orcl.f
    -rw-r-----. 1 oracle oinstall     2560 Aug  4 06:27 spfileorcl.ora
    
    创建完口令文件后给sys用户授予sysdba权限
    SQL> alter user sys identified by oracle;
    
    User altered.
    
    SQL>
    
    然后在查看一下视图v$pwfile_users,可以看到已经同步,切记口令文件和数据库设置的密码要一致。
    SQL> select * from v$pwfile_users;
    
    USERNAME
    --------------------------------------------------------------------------------
    SYSDBA          SYSOPER         SYSASM
    --------------- --------------- ---------------
    SYS
    TRUE            TRUE            FALSE
    
    SQL>
    

    然后用SQL客户端用sys用户登录以显示成功如图:

     

    问题感言:这个问题花了我几个小时在网上查资料去解决,网上的均是各抒己见,说什么的都有,但都是大同小异,反倒迷惑了自己的思路,其实问题的根本还是要从问题发生的根源去分析才是解决问题的最有效的方法,不能说网上没有好文章,而是相比大海捞针式的去网上搜索答案,不如自己先想想问题的根源再去解决问题或是参考网的建议效率上会跟高查资料也更有针对性。

     

     

     

     

     

     

     

    展开全文
  • SYSDBA则是一种认证,也就是SYS的认证,可以对数据库进行shutdown等等的操作; 这里涉及到两个表即dba_role_privs和v$pwfile_users 先看DBA; 新建一个cat用户,赋予它DBA的权限,然后执行各种操作 SQL> create...

    笔者查询后得出
    DBA属于一个角色,也就是各种权限的综合;
    而SYSDBA则是一种认证,也就是SYS的认证,可以对数据库进行shutdown等等的操作;

    这里涉及到两个表即dba_role_privs和v$pwfile_users

    先看DBA;
    新建一个cat用户,赋予它DBA的权限,然后执行各种操作

    SQL> create user cat identified by cat;
    
    User created.
    
    SQL> grant dba to cat;
    
    Grant succeeded.
    
    SQL> select * from dba_role_privs where grantee='CAT';
    
    GRANTEE 										   GRANTED_ROLE 									      ADMIN_OPT DEFAULT_R
    ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ --------- ---------
    CAT											   DBA											      NO	YES
    
    SQL> select * from v$pwfile_users;
    
    USERNAME										   SYSDBA	   SYSOPER	   SYSASM
    ------------------------------------------------------------------------------------------ --------------- --------------- ---------------
    SYS	
    SQL> conn cat/cat
    Connected.
    SQL> create user catt identified by catt;
    
    User created.
    
    SQL> select * from v$log;
    
        GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE	  MEMBERS ARCHIVED  STATUS					     FIRST_CHANGE# FIRST_TIME	   NEXT_CHANGE# NEXT_TIME
    ---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- --------------- ------------ ---------------
    	 1	    1	     100   52428800	   512		1 YES	    INACTIVE						   1780744 08-FEB-20		1796736 09-FEB-20
    	 2	    1	     101   52428800	   512		1 YES	    INACTIVE						   1796736 09-FEB-20		1812567 11-FEB-20
    	 3	    1	     102   52428800	   512		1 NO	    CURRENT						   1812567 11-FEB-20	     2.8147E+14
    
    SQL> shutdown immediate
    ORA-01031: insufficient privileges
    
    

    总结:授予了DBA权限的用户,可以做很多事情,但是无法关闭数据库。
    创建用户的时候注意,录入数据库的用户都是大写。

    接下来我们来看下授予sysdba的用户可以做些什么,新建一个dog用户,并执行如下操作

    SQL> create user dog identified by dog;
    
    User created.
    
    SQL> show user
    USER is "SYS"
    SQL> grant sysdba to dog;
    
    Grant succeeded.
    
    SQL> select * from v$pwfile_users;
    
    USERNAME										   SYSDBA	   SYSOPER	   SYSASM
    ------------------------------------------------------------------------------------------ --------------- --------------- ---------------
    SYS											   TRUE 	   TRUE 	   FALSE
    DOG											   TRUE 	   FALSE	   FALSE
    
    SQL> select * from dba_role_privs where grantee='DOG';
    
    no rows selected
    
    SQL> conn dog/dog as sysdba
    Connected.
    SQL> show user
    USER is "SYS"
    SQL> create user abc identified by abc;
    
    User created.
    
    SQL> select * from v$log;
    
        GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE	  MEMBERS ARCHIVED
    ---------- ---------- ---------- ---------- ---------- ---------- ---------
    STATUS						 FIRST_CHANGE# FIRST_TIME
    ------------------------------------------------ ------------- ---------------
    NEXT_CHANGE# NEXT_TIME
    ------------ ---------------
    	 1	    1	     100   52428800	   512		1 YES
    INACTIVE					       1780744 08-FEB-20
         1796736 09-FEB-20
    
    	 2	    1	     101   52428800	   512		1 YES
    INACTIVE					       1796736 09-FEB-20
         1812567 11-FEB-20
    
        GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE	  MEMBERS ARCHIVED
    ---------- ---------- ---------- ---------- ---------- ---------- ---------
    STATUS						 FIRST_CHANGE# FIRST_TIME
    ------------------------------------------------ ------------- ---------------
    NEXT_CHANGE# NEXT_TIME
    ------------ ---------------
    
    	 3	    1	     102   52428800	   512		1 NO
    CURRENT 					       1812567 11-FEB-20
      2.8147E+14
    
    
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut 
    

    总结:被授予了sysdba的用户,登录时,需要+尾缀 as sysdba,所有DBA权限能做的都可以,并且还可以关闭数据库,相当强大哦;

    展开全文
  • 在logical standby环境中,在primary 端对用户授予sysdba权限,备库会出现ORA-01031 错误,并中断apply进程。SYMPTOMSORA-01031 Error with SQL Apply of Logical Standby:Thu Jul 31 16:47:46 2008LOGSTDBY stmt: ...
  • 提示用sysdba权限删除(system账户不行)。 原因:oracle登录时默认操作系统账户,本机电脑是Administrator账户,发现账户并没有在ora-dba域中 解决办法:  1、我的电脑右键-->管理-->本地用户和组-->组 ...
  • 同步过去的备库用户无sysdba权限(该用户已同步) 涉及SQL: select sysdba from V$PWFILE_USERS where USERNAME=‘C##DBRA’; no row select 询问创建用户以及授权语句如下: create user c##dbra identified by ...
  • 1) sys用户是超级用户,具有最高权限sysdba角色,有create database的权限,所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不...
  • ## **oracle创建用户,并赋予其特定权限** ## 1、cmd进入命令行输入输入【sqlplus /nolog】进入oralce控制台; 2、进入控制台输入【conn / as sysdba】,以管理员权限登录; 3、登录成功输入【create user ...
  • 一、本地以sysdba 身份登录数据库实例时,碰到ORA-01031 权限不足...在linux 操作系统的数据库服务器上,使用”sqlplus / as sysdba” 登录Oracle 10.2 数据库实例时,登录失败,显示ORA-01031: 权限不足。
  • 例,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限:可以让用户能够对各个对象进行某些操作。例,delete权限允许用户删除表或视图的行, select权限允许用户通过...
  • sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 ...sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。   system用户用于存放次一级的内部数据,如oracle的一些
  • 文章目录1 结论2 详解2.1 sys 和 system 用户区别2.2 sysdba 和 sysopr 身份认证区别2.3 dba 角色权限3 扩展 1 结论 1. sys 和 system 都是 Oracle '内置用户' 但 sys ('超级用户') 的权限远大于 system ('一般管理...
  • Oracle sys和system用户、sysdba 和sysoper系统权限sysdba和dba角色的区别  sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys所有oracle的数据字典的基表和视图都存放在sys用户中,...
  • oracle授予XXX权限

    2011-12-22 15:35:34
    sqlplus / as sysdba; grant create view to 用户名; 今天在进行procedure执行的时候,用的是PL/SQL工具中的test,调试方法进行执行,因为有输入参数,但是报了个错:“note:debugging requires the debug...
  • 1.system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。 2.sys用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户...
  • 普通用户授予sysdba权限登录数据库失败,系统显示如下错误信息: % sqlplus /@ as sysdba SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:11 2009   Copyright (c) 1982, 2008, Oracle. All ...
  • sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys:所有oracle的数据字典的基表和视图...sys用户拥有 dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。   system用户:用于存放次一级的
  • Oracle 用户 对象权限 系统权限

    千次阅读 2018-11-03 19:34:56
    使用户同样具有分配权限的权利,可将此权限授予别人     SQL > GRANT CREATE SESSION , CREATE TABLE , CREATE USER TO scott ;   SQL > GRANT EXECUTE ANY PROCEDURE TO scott WITH ...
  • oracle 用户权限 imp

    千次阅读 2018-10-05 15:06:29
     必须通过dba(系统管理员)权限才能导入文件:先登录dba权限后;执行语句“grant dba to username”; imp username/password@sid file="c:\xx.dmp" full=y --------------- Oracle10g修改system用户...
  • Oracle dba和sysdba的区别

    千次阅读 2017-08-07 11:12:16
    之前老是把dba和sysdba混为一体,今天看到论坛在讨论两者的区别,特记录如下: SYSDBA不是权限,当用户以SYSDBA身份登陆数据库时,登陆用户都会变成SYS. ...sysdba,是管理oracle实例的,它的存在不依赖于
  •  用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作  SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象  SYSTEM用户,缺省始终创建,且未被锁定,可以...
  • oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。...
  • sqlplus sys/ABCabc123 as sysdba;--&gt;  --&gt;CREATE TABLESPACE HNUFJCS DATAFILE 'D:/app/chris/product/11.2.0/dbhome_1/oradata/sample/HNUFJCS.dbf' SIZE 500M UNIFORM SIZE 128k; 2....
  • system和sys默认的口令为:manager和change_on_install 同时也授予两个用户DBA角色的权限. 【system】用户只能用normal身份登陆em。 【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能...
  • oracle用户权限与管理员权限问题

    万次阅读 2018-08-07 15:25:56
    1、stu用户没有建表权限→需sys或system用户赋权 system默认:manager sys默认:change_on_install 使用SQL Plus登录数据库时,system使用密码manager可直接登录。 但如果是sys用户,密码必须加上as sysdba,即...
  • 注: 需要全部三个权限授予,无法创建视图的可以查看当前用户是否有全部权限 --授予创建权限 1、grant create view to User; --授予查询权限 2、grant select any table to User; --授予权限 3、grant ...
  • oracle安装完成后,需要查看一下是否安装成功了,并且创建一个表测试一下。本文以oracle 11 为例,介绍oracle的常用命令以及如何创建一个数据表。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,169
精华内容 3,267
关键字:

oracle授予sysdba权限