CONNECT USERNAME/PASSWORD@SERVERNAME AS SYSDBA
connect 是指连接到
username是指用户名
password是指密码
servername是指服务名
as sysdba是指已数据库管理员的身份登录
不知道能不能帮到你。

oracle提供的认证模式
 1. 操作系统验证(匿名登录 不检验用户名和密码)
  conn / as sysdba既是操作系统认证
  只能用在本地 因为数据库软件安装在操作系统之上 用户必须是dba组;
  能直接访问操作系统了 oracle就不需要限制了.

在类UNIX系统中 基于权限委派的原因
  对于普通用户
   添加到oinstall dba组中即可
   如果只添加dba组也不可以
   因为oracle安装目录基本都是750权限 即使改目录权限 库函数权限也无法获取 还需要改
  对于root用户
   因为UNIX权限委派的第一步就是验证UID是否等于0
   所以即使是添加到oinstall dba组也不能登录

记住,不要用oracle以外的用户去操作oracle
  就好比 老板不能去做前台一样 不要违背这些已规划好的规则.
 2.密码文件认证
  密码文件存储的位置 $ORACLE_HOME/dbs/orapw$ORACLE_SID

oracle中有两类特殊的身份SYSDBA和sysoper,当DBA需要对数据库进行维护管理操作的时候,
必须具有这两类特殊身份之中的一种.
在数据库没有打开的时候,使用数据库内建的账号是无法登陆数据库的,
但是拥有SYSDBA或是SYSOPER权限的用户是可以登陆的。
认证用户是否拥有两类特殊权限的方法有两种:OS认证和口令文件认证。

Oracle数据库究竟使用OS认证还是口令文件认证来进行管理取决于下面三个因素:
 1.SQLNET.ORA参数文件中的参数SQLNET.AUTHENTICATION_SERVICES设置
 2.PFILE(SPFILE)参数文件中的参数REMOTE_LOGIN_PASSWORDFILE设置
 3.口令文件orapw$SID(Linux) | PWD$SID.ora(Windows) 是否存在

Oracle权限认证的基本顺序是这样的:
 先由SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是口令文件认证,
 如果使用口令文件认证的话就要看后面两个条件了:
  如果REMOTE_LOGIN_PASSWORDFILE参数设置为非NONE,
  而且口令文件存在的话就能正常使用口令文件认证,否则将会失败。

SQLNET.AUTHENTICATION_SERVICES参数
在SQLNET.ORA(位于$ORACLE_HOME/network/admin目录中)文件中,需要修改时直接用文本编辑器打开修改就行了,
对于不同的操作系统SQLNET.AUTHENTICATION_SERVICES的取值会有些不一样,通常我们会用到下面的一些设置值:
linux下 none  all nts 不设置或BEQ 四种情况
 启动监听 lsnrctl start 用于网络连接 走密码文件
 使用外部命令将sys的密码设置成a
  orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=a force=y
linux平台测试
第一种默认情况  没设置或者设置成BEQ
 [oracle@dba admin]$ grep -v '#' sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

[oracle@dba admin]$
 $ sqlplus sys/a@db10 as sysdba
  可以登录
 $ sql / as sysdba
  可以登录
 结论: 没设置或值为BEQ时 密码认证和OS认证都启用

第二种情况 设置成none
[oracle@dba admin]$ grep -v '#' sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(none)

[oracle@dba admin]$
 
[oracle@dba admin]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 30 04:35:02 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn / as sysdba
ERROR:
ORA-01031: 权限不足

SQL> conn sys/a as sysdba
Connected.
SQL>
SQL> conn sys/a@db10 as sysdba
Connected.
SQL>
 结论: (none) OS认证被屏蔽 必须走密码文件认证

第三种情况 设置成all
SQL> conn / as sysdba
Connected.

SQL> conn sys/a@db10 as sysdba
ERROR:
ORA-12641: Authentication service failed to initialize

Warning: You are no longer connected to ORACLE.
SQL>

结论: all 密码文件认证被屏蔽 只能OS认证
 
第四种情况 设置nts
[oracle@dba admin]$ grep -v '#' sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(nts)

[oracle@dba admin]$

SQL> conn / as sysdba
ERROR:
ORA-01031: 权限不足

SQL> conn sys/a as sysdba
Connected.
SQL> conn sys/a@db10 as sysdba
Connected.
SQL>

结论: nts只能密码文件认证
 
windows平台测试

第一种 默认情况 设置nts
 
SQL> conn / as sysdba
已连接。
SQL> alter user sys identified by a;

用户已更改。

SQL> conn / as sysdba
已连接。
SQL> conn sys/a as sysdba
已连接。
SQL> conn sys/a@orawin as sysdba
已连接。
SQL>
 结论: 设置nts(和linux不一致) 密码和OS认证都启用

第二种 设置成none

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

SQL> conn sys/a as sysdba
已连接。
SQL> conn sys/a@orawin as sysdba
已连接。
SQL>
 结论: 设置成none(和linux一致) 只能密码认证 OS认证被屏蔽

第三种 设置成 all

SQL> conn / as sysdba
ERROR:
ORA-12641: 验证服务无法初始化

SQL> conn sys/a as sysdba
ERROR:
ORA-12641: 验证服务无法初始化

SQL> conn sys/a@orawin as sysdba
ERROR:
ORA-12641: 验证服务无法初始化

结论: 此参数在windows下 OS和密码认证都屏蔽了

第四种 不设置

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

SQL> conn sys/a as sysdba
已连接。
SQL> conn sys/a@orawin as sysdba
已连接。
SQL>
 结论:只允许密码认证 OS认证被屏蔽

第五种 设置成beq
SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

警告: 您不再连接到 ORACLE。
SQL> conn sys/a as sysdba
已连接。
SQL> conn sys/a@orawin as sysdba
已连接。
SQL>
 结论:只能使用密码认证 OS认证被屏蔽

REMOTE_LOGIN_PASSWORDFILE参数
 此系统参数的设置制定了数据库使用口令文件的方法,此参数可以设置的值有三个:

REMOTE_LOGIN_PASSWORDFILE = NONE
  不使用口令文件

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
  使用口令文件,但只有一个数据库实例可用使用

REMOTE_LOGIN_PASSWORDFILE = SHARED
  多个数据库实例共用一个口令文件,这种设置下是不能增加其他数据库用户作为特殊权限用户到口令文件中的。
  
 alter system set  REMOTE_LOGIN_PASSWORDFILE = NONE  scope = spfile;
 
 grant sysdba to scott; 
 
 select * from v$pwfile_users;
 
密码文件
 存储sysdba sysoper身份验证的密码,当然也可以将普通用户提升到这个身份
 sysdba  超级管理员 conn / as sysdba
 sysoper 操作员     conn / as sysoper
 两个身份的区别
  sysdba 不受权限控制
  sysoper 和sysdba比sysdba缺少的权限:
    1.不能建库
    2.不能启动数据库到受限会话模式
    3.不能进行热备份
    4.不能进行数据库的不完全恢复
    5.不能查询dba_数据字典
  其实我们通常都用sysdba而不用sysoper
 SYS@ora10g> conn / as sysdba
 Connected.
 SYS@ora10g> show user
 USER is "SYS"
 SYS@ora10g
 只要使用 as sysdba登录 show user永远是sys
  
 SYS@ora10g> conn / as sysoper
 Connected.
 PUBLIC@ora10g> show user
 USER is "PUBLIC"
 PUBLIC@ora10g>
 只要使用 as sysoper登录 show user永远是public

修改超级用户的口令
   1.使用管理员(sys system)用户登录 在数据库内部去修改
 SYS@ora10g> show user
 USER is "SYS"
 SYS@ora10g> alter user sys identified by sys;

User altered.

SYS@ora10g> 这样就把sys的密码改成了sys
   2.直接修改口令文件 但口令文件是二进制的 只能用orapwd命令去重新创建
 SYS@ora10g> !orapwd
 Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>
 SYS@ora10g> ! orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=1 force=y

SYS@ora10g> 这样就把sys密码设置成了oracle
 授权
 SYS@ora10g> grant sysdba to u1;
 
 entries=<users> 默认的数值是4 也就是能容纳多少个用户
 设置规律
  0-4 可以容纳5个
  5-8 可以容纳9个
  9-12 可以容纳13个
  依此类推...
 
[oracle@shell dbs]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=1 force=y

O7_DICTIONARY_ACCESSIBILITY 参数的作用

sys是数据库库内部的超级用户 默认连接必须使用as sysdba身份
 而这个参数可以无需使用as sysdba身份而直接使用sys连接 意义不大
SQL> conn / as sysdba
Connected.
SQL>
SQL> show parameter o7

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY      boolean  FALSE
SQL>
SQL> alter user sys identified by a;

User altered.

SQL> conn sys/a
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

Warning: You are no longer connected to ORACLE.
SQL> conn / as sysdba
Connected.
SQL> show parameter o7

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY      boolean  FALSE

SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size      1218992 bytes
Variable Size     75499088 bytes
Database Buffers   205520896 bytes
Redo Buffers      2973696 bytes
Database mounted.
Database opened.
SQL> show parameter o7

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY      boolean  TRUE
SQL> conn sys/a
Connected.
SQL> select count(*) from session_roles;

COUNT(*)
----------
 32

SQL> select count(*) from session_privs;

COUNT(*)
----------
       161

SQL> conn / as sysdba
Connected.
SQL> select count(*) from session_roles;

COUNT(*)
----------
  0

SQL> select count(*) from session_privs;

COUNT(*)
----------
       166

SQL>

各版本之间sys的权限分派

oracle805
svrmgrl
 server manager line 缩写
 管理底层数据库的启动停止
connect internal

sys数据库的所有者
system 管理者

sqlplus只能做查询

oracle8I

svrmgrl
 server manager line 缩写
 管理底层数据库的启动停止
connect internal

as sysdba 新增 但还没有完全取代 svrmgrl connect internal
sqlplus 提升到可以启库停库

oracle9I

as sysdba 完全取代了 svrmgrl和connect internnal
   存在于数据库之外 所以没角色(role)
 
sys/a     数据库内部的管理员
   有角色

***************************************************************************

oinstall和dba组中的用户,登录服务器本机,直接通过OS的认证,直接登录数据库 
oracle用户是用来安装oracle数据库软件,哪个用户装的,用哪个用户操作

sqlplus user/pass@IP:port/service_names;---走密码文件
sqlplus sys/pass@IP:port/service_names  as sysdba
sys用户通过as sysdba登录,直接找密码文件中的密码,判断跟输入的密码是否一致
as sysoper 直接找密码文件中的密码,判断跟输入的密码是否一致
普通用户登录,拿着密码到数据字典中获取密码,只有数据库打开的情况下才能执行

as sysdba|sysoper(描述符) 数据库还没有启动,如果想要启动数据库,需要验证身份
如果把as sysdba的密码也放在数据字典里,那么数据库关闭的时候,不能访问
数据字典,导致没人能够启动数据库

as sysdba:超级管理员身份的切换,切换到内部sys
as sysoper:操作员,切换到内部public

as sysdba连接数据库,显示的用户都是sys,sys用户是不能直接登录的,必须是以as sysdba登录
as sysdba的连接符进行切换,显示的用户是public

as sysoper连接数据库,显示的用户都是public

密码文件
$ORACLE_HOME/dba/orapw$ORACLE_SID

SYS@ora10g> desc dba_users;
 Name             Null? Type
 ----------------------------------------------------- -------- ------------------------------------
 USERNAME            NOT NULL VARCHAR2(30)
 USER_ID            NOT NULL NUMBER
 PASSWORD       VARCHAR2(30)
 ACCOUNT_STATUS            NOT NULL VARCHAR2(32)
 LOCK_DATE       DATE
 EXPIRY_DATE       DATE
 DEFAULT_TABLESPACE           NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE           NOT NULL VARCHAR2(30)
 CREATED            NOT NULL DATE
 PROFILE            NOT NULL VARCHAR2(30)
 INITIAL_RSRC_CONSUMER_GROUP     VARCHAR2(30)
 EXTERNAL_NAME       VARCHAR2(4000)

SYS@ora10g> select username,password from dba_users where username='SCOTT';

USERNAME         PASSWORD
------------------------------ ------------------------------
SCOTT          4DD35D67F0372586

conn sys/pass 默认关闭,不让连接

sqlplus / as sysdba;禁用
vim $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(beq);一个值可以不加(),一般写大写

beq none  all nts
因平台的不同,效果也不同

beq:默认
sqlplus / as sysdba:允许登录
sqlplus sys/oracle@IP:port/service_name as sysdba:允许登录

none:
sqlplus / as sysdba;拒绝
sqlplus sys/oracle@IP:port/service_name as sysdba;允许登录

all:
sqlplus / as sysdba;允许登录
sqlplus sys/oracle@IP:port/service_name as sysdba;拒绝

nts:
sqlplus / as sysdba;允许登录
sqlplus sys/oracle@IP:port/service_name as sysdba;拒绝

SYS@ora10g> show parameter remote_login_passwordfile

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile      string  EXCLUSIVE

$ORACLE_HOME/dba/orapw$ORACLE_SID密码文件不存在了:
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=abc force=y
密码文件的改变不影响数据字典中的密码,alter修改用户的密码,密码文件中的密码也改变

实验一:
第一步:
sqlplus /nolog
conn / as sysdba
seleect username,password from dba_users where username='SYS';

第二步:
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=abc force=y;--修改密码文件中的密码

第三步:
sqlplus /nolog
conn / as sysdba
seleect username,password from dba_users where username='SYS';

结果:第一步和第三步的结果集一样,改变密码文件中的密码,数据字典中的密码不改变

实验二:
第一步:
strings  $ORACLE_HOME/dbs/orapw$ORACLE_SID

第二步:
sqlplus /nolog
conn / as sysdba
seleect username,password from dba_users where username='SYS';
alter user sys identified by sys123;--修改数据字典中的密码
seleect username,password from dba_users where username='SYS';

第三步:
strings  $ORACLE_HOME/dbs/orapw$ORACLE_SID

结果:第一步和第三步的结果集不一样,改数据字典中的密码,密码文件中的密码也随之改变

摘自:http://blog.csdn.net/lsz_qh/article/details/7349110

oracle最高账号sys的密码认证模式的更多相关文章

  1. oracle忘记了sys,system 密码后怎么修改?

    一.忘记除SYS.SYSTEM用户之外的用户的登录密码.  用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;  使用如下语句修改用户的密码: ALTE ...

  2. WCF的用户名+密码认证方式(转)

    概述 今天在做Master Data Service(后面简称MDS)项目时需要通过WCF来使用MDS的API,从而对MDS的数据进行操作.在这个过程中,遇到了一个棘手的问题,就是在客户端调用Web ...

  3. 如何找回Oracle中system,sys用户的密码[转]

    Oracle中如果不知道system,sys用户的密码后可用如下方法找回: 首先以一个普通用户等入数据库: 在SQL*Plus中执行如下命令: SQL>connect/as sysdba (也可 ...

  4. 忘记oracle的sys用户密码怎么修改

    转分类: Linux 一.忘记除SYS.SYSTEM用户之外的用户的登录密码.  用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;  使用如下语句修改 ...

  5. 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4客户端授权的原理及如何实现自定义的客户端授权,并配合网关实现了统一的授权异常返回值和权限配置等相关功能,本篇将介绍 ...

  6. Oracle用户密码认证方式

    oracle用户有两种认证方式: 操作系统认证(要求该用户属于本地DBA组,然后通过操作系统认证登录oracle,从而启动数据库) 密码文件认证 oracle使用哪种认证方式决定在于两个参数: 1.r ...

  7. oracle中的sys用户(修改密码)/////Oracle删除表空间的同时删除数据文件 ///// Oracle中如何保证用户只有一个session登录

    oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用 ...

  8. 【Devops】【docker】【CI/CD】Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK until the license is accepted

    Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK  until the  license is accepted 解决方法: ...

  9. 忘记oracle的sys用户密码怎么修改以及Oracle 11g 默认用户名和密码

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

随机推荐

  1. 【MySQL】MySQL悲观锁 + 事物 + for update 解决普通流量并发的问题

    使用mysql悲观锁解决并发问题   最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事 ...

  2. js常用util

    /** 日期格式化 */Date.prototype.Format = function(format) { var o = {  "M+" : this.getMonth() + ...

  3. webconfig配置详解--转

    花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...

  4. PPT2010学习笔记(共20讲)

    第1讲  商务PPT中的必备元素 # 设计需打破规范 第2讲  封面页设计(一) 大图型封面页 # 基础知识点: 插入矩形和圆形 设置半透明色 设置字体变形效果 图片增强工具 利用过渡色虚化图片边缘 ...

  5. mysql 索引总结

    一.MYSQL索引类型(共三种) 1).normal 正常 应用场景:普通的index 2).unique 唯一性的 应用场景:比如身份证的 3).full text 全文索引 应用场景:较长文字 二 ...

  6. Linux之shell备份数据库

    功能概述: 使用shell脚本对服务器的数据库(全部或指定数据库)进行备份.对15天(固定天数)之前的数据库备份进行删除 命令实现: 待定

  7. go语言实战教程:实战项目资源导入和项目框架搭建

    从本节内容开始,我们将利用我们所学习的Iris框架的相关知识,进行实战项目开发. 实战项目框架搭建 我们的实战项目是使用Iris框架开发一个关于本地服务平台的后台管理平台.平台中可以管理用户.商品.商 ...

  8. 洛谷P3533 [POI2012]RAN-Rendezvous

    P3533 [POI2012]RAN-Rendezvous 题目描述 Byteasar is a ranger who works in the Arrow Cave - a famous rende ...

  9. 洛谷P2055 [ZJOI2009]假期的宿舍

    P2055 [ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A ...

  10. python 变量,输入,输出

    目录 2.0 注释 2.1 变量 2.2 变量名命名规范 2.3 常量 2.4 输入 input 2.5 输出 print 2.6 关于开发工具 2.0 注释 python的注释方法 "&q ...