返回顶部
首页 > 资讯 > 数据库 >Oracle的密码文件及远程SYSDBA登录
  • 196
分享到

Oracle的密码文件及远程SYSDBA登录

2024-04-02 19:04:59 196人浏览 泡泡鱼
摘要

密码文件(passWord file)是一个可选的文件,允许远程SYSDBA或管理员访问数据库。启动oracle时,还没有数据库可以用来验证密码。在本地系统上启动Oracle时,Oracle会利用操作系统来

密码文件(passWord file)是一个可选的文件,允许远程SYSDBA或管理员访问数据库

启动oracle时,还没有数据库可以用来验证密码。在本地系统上启动Oracle时,Oracle会利用操作系统来执行这种认证。安装Oracle时,会要求完成完成的人指定管理员“组”。在Unix/linux上,这个组一般默认为dba,在windows上默认为OSDBA,不过也可以是平台上任何合法的组名。这个组很特殊,因为这个组中的任何用户都可以作为SYSDBA连接Oracle,而无需指定用户名或密码。

[root@rhel6 ~]# id Mysql
uid=496(mysql) gid=495(mysql) groups=495(mysql),500(oinstall)
[root@rhel6 ~]# su - mysql
-bash-4.1$ export ORACLE_HOME=/u02/app/oracle/product/11.2.4/db1
-bash-4.1$ export ORACLE_SID=orcl
-bash-4.1$ cd $ORACLE_HOME/bin
-bash-4.1$ ./sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 15 21:32:05 2016

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

ERROR:
ORA-01017: invalid username/password; loGon denied


Enter user-name: ^C
-bash-4.1$ su
Password: 
[root@rhel6 bin]# usermod -G dba mysql
[root@rhel6 bin]# id mysql
uid=496(mysql) gid=495(mysql) groups=495(mysql),501(dba)
[root@rhel6 bin]# exit
exit
-bash-4.1$ ./sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 15 21:32:36 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

sys@ORCL>show user
USER is "SYS"

现在可以连接数据库做管理工作,或启动关闭数据库。如果要从另外一台机器通过网络完成这个操作会怎么样呢?下面我使用@连接串来连接:

C:\Users\victor>sqlplus /@orcl as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期四 12月 15 21:42:04 2016

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

ERROR:
ORA-01017: invalid username/password; logon denied

在网络上,对于SYSDBA的操作系统认证不再奏效,即使把很不安全的REMOTE_OS_AUTHENT参数设置为TRUE也不例外。所以操作系统认证不可行。因此密码文件应运而生了。

密码文件保存了一个用户名和密码列表,这些用户名和密码分别对应于通过网络远程认证为SYSDBA的用户。Oracle必须使用这个文件来认证用户,而不是数据库中存储的正常密码列表。

下面验证这种情况。首先,设置REMOTE_LOGIN_PASSWORDFILE,有三个值:NONE,意味着没有密码文件,不存在“远程SYSDBA登录”、SHARED,多个数据库可以使用同样的密码文件、EXCLUSIVE,只有一个数据库使用一个给定的密码文件。这里设置为EXCLUSIVE。

alter system set remote_login_passwordfile=exclusive scope=spfile;

修改这个参数需要重启数据库。

使用orapwd创建和填写这个初始的密码文件,密码文件位于$ORACLE_HOME/dbs目录中。

[oracle@rhel6 dbs]$ which orapwd
/u02/app/oracle/product/11.2.4/db1/bin/orapwd
[oracle@rhel6 dbs]$ orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

  where
    file - name of password file (required),
    password - password for SYS will be prompted if not specified at command line,
    entries - maximum number of distinct DBA (optional),
    force - whether to overwrite existing file (optional),
    ignorecase - passwords are case-insensitive (optional),
    nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).
    
  There must be no spaces around the equal-to (=) character.
[oracle@rhel6 dbs]$ pwd
/u02/app/oracle/product/11.2.4/db1/dbs
[oracle@rhel6 dbs]$ orapwd file=orapw$ORACLE_SID password=oracle entries=20
[oracle@rhel6 dbs]$ ls -l orapw$ORACLE_SID
-rw-r----- 1 oracle oinstall 3584 Dec 15 21:55 orapworcl

目前该文件中只有一个用户,也就是用户SYS,尽管数据库上还有其他SYSDBA账户,但它们还不在密码文件中。不过基于以上设置我们可以作为SYSDBA通过网络连接Oracle,即使Oracle没有启动,并且可以远程启动Oracle。

C:\Users\victor>sqlplus sys/oracle@orcl as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期四 12月 15 22:00:24 2016

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

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  784998400 bytes
Fixed Size                  2257352 bytes
Variable Size             754978360 bytes
Database Buffers           20971520 bytes
Redo Buffers                6791168 bytes
数据库装载完毕。
数据库已经打开。

注意:如果上边这一步遇到ORA-12505 "TNS:listener does not currently know of SID given in connect descriptor"说明没有配置数据库实例的静态监听。

创建了密码文件,那我们能不能看看密码文件里到底记录了什么内容呢,会不会把我们的密码泄漏呢?

密码文件是一个二进制文件是不能直接查看的,Linux上可以使用strings命令查看

[oracle@rhel6 dbs]$ strings orapworcl
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
mHD2

从输出可以看出密码文件中没有使用明文记录我们的密码而是记录了一些串码。

其实这个密码文件还和数据库中的一个视图v$pwfile_users有一些关系

V$PWFILE_USERS lists all users in the password file, and indicates whether the user has been granted the SYSDBA, SYSOPER, and SYSASM privileges.
USERNAME VARCHAR2(30) Name of the user that is contained in the password file
SYSDBA VARCHAR2(5) Indicates whether the user can connect with SYSDBA privileges (TRUE) or not (FALSE)
SYSOPER VARCHAR2(5) Indicates whether the user can connect with SYSOPER privileges (TRUE) or not (FALSE)
SYSASM VARCHAR2(5) Indicates whether the user can connect with SYSASM privileges (TRUE) or not (FALSE)
sys@ORCL>select * from v$pwfile_users;

USERNAME										   SYSDBA	   SYSOPER	   SYSASM
------------------------------------------------------------------------------------------ --------------- --------------- ---------------
SYS											   TRUE 	   TRUE 	   FALSE
--给用户zx赋予SYSDBA权限可以看到v$pwfile_users多了一条记录,而密码文件orapworcl也多了一行串码。
sys@ORCL>grant sysdba to zx;

Grant succeeded.

sys@ORCL>select * from v$pwfile_users;

USERNAME										   SYSDBA	   SYSOPER	   SYSASM
------------------------------------------------------------------------------------------ --------------- --------------- ---------------
SYS											   TRUE 	   TRUE 	   FALSE
ZX											   TRUE 	   FALSE	   FALSE

sys@ORCL>!strings /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
mHD2
7B06550956254585
--给用户zx赋予SYSOPER的权限,可以看到v$pwfile_users的zx行状态发生了变化,但是orapworcl没有变化
sys@ORCL>grant sysoper to zx;

Grant succeeded.

sys@ORCL>select * from v$pwfile_users;

USERNAME										   SYSDBA	   SYSOPER	   SYSASM
------------------------------------------------------------------------------------------ --------------- --------------- ---------------
SYS											   TRUE 	   TRUE 	   FALSE
ZX											   TRUE 	   TRUE 	   FALSE

sys@ORCL>!strings /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
mHD2
7B06550956254585
--移除密码文件再移回来,移除密码文件后v$pwfile_users变为空,移回后v$pwfile_users又有记录。
sys@ORCL>! mv /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl_orcl

sys@ORCL>select * from v$pwfile_users;

no rows selected

sys@ORCL>! mv /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl_orcl /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl

sys@ORCL>select * from v$pwfile_users;

USERNAME										   SYSDBA	   SYSOPER	   SYSASM
------------------------------------------------------------------------------------------ --------------- --------------- ---------------
SYS											   TRUE 	   TRUE 	   FALSE
ZX											   TRUE 	   TRUE 	   FALSE
--测试zx用户远程以SYSDBA登录
C:\Users\victor>sqlplus zx/zx@orcl as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期四 12月 15 22:34:09 2016

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


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show user;
USER 为 "SYS"
--回收用户zx的SYSDBA和SYSOPER权限,v$pwfile_users中的zx记录行没有了,密码文件orapworcl没有变化
sys@ORCL>revoke sysdba,sysoper from zx;

Revoke succeeded.

sys@ORCL>select * from v$pwfile_users;

USERNAME										   SYSDBA	   SYSOPER	   SYSASM
------------------------------------------------------------------------------------------ --------------- --------------- ---------------
SYS											   TRUE 	   TRUE 	   FALSE

sys@ORCL>!strings /u02/app/oracle/product/11.2.4/db1/dbs/orapworcl
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
mHD2
7B06550956254585
--再次测试zx用户远程以SYSDBA登录,现在无法登录
C:\Users\victor>sqlplus zx/zx@orcl as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期四 12月 15 22:35:17 2016

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

ERROR:
ORA-01017: invalid username/password; logon denied


参考:Http://www.xifenfei.com/2011/12/vpwfile_users%E5%92%8C%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6%E5%85%B3%E7%B3%BB.html

《9i10g11g编程艺术 深入数据库体系结构》

您可能感兴趣的文档:

--结束END--

本文标题: Oracle的密码文件及远程SYSDBA登录

本文链接: https://lsjlt.com/news/40713.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle的密码文件及远程SYSDBA登录
    密码文件(password file)是一个可选的文件,允许远程SYSDBA或管理员访问数据库。启动Oracle时,还没有数据库可以用来验证密码。在本地系统上启动Oracle时,Oracle会利用操作系统来...
    99+
    2024-04-02
  • oracle中禁用sysdba远程登录遇见的问题有哪些
    小编给大家分享一下oracle中禁用sysdba远程登录遇见的问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为了安全起...
    99+
    2024-04-02
  • 远程登录ssh免密码
    问题:假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问。方法和原理:我们使用ssh-keygen在ServerA上生成private和public密...
    99+
    2024-04-02
  • Linux远程登录和无密码登录的方法
    这篇文章主要讲解了“Linux远程登录和无密码登录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux远程登录和无密码登录的方法”吧!一、远程登录方法SSH 是一种安全通道协议 ,...
    99+
    2023-06-13
  • 华为云服务器远程登录密码
    如果您需要远程登录华为云服务器,以下是几种方法: 使用华为云官方网站上的远程登录选项来登录云服务器。该选项需要您输入个人用户名和密码,以便能够访问华为云服务器的远程登录账户和配置。 使用华为云官方提供的华为云服务器管理应用程序来登录。您...
    99+
    2023-10-26
    华为 密码 服务器
  • 腾讯云服务器远程登录密码
    如果您的云服务器是托管在腾讯云服务器上的,那么您可以使用腾讯云提供的远程登录功能来进行远程登录。具体操作为:在您的终端设备上安装“腾讯云服务器”应用程序。在“应用商店”中搜索“腾讯云服务器”,并在其应用界面中找到并下载该应用程序并安装。 ...
    99+
    2023-10-27
    腾讯 密码 服务器
  • mysql 5.1中如何修改密码,及远程登录mysql数据库
    下面一起来了解下mysql 5.1中如何修改密码,及远程登录mysql数据库,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql 5.1中如何修改密码,及远程登录mysql数据库这篇短内容是你想要的...
    99+
    2024-04-02
  • linux远程登录ssh免密码怎么配置
    这篇“linux远程登录ssh免密码怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2024-04-02
  • 清除自动保存的远程目录登录密码的方法
    问:我的电脑(Windows XP SP2)中有一个共享目录,原来设置为任何人都可以访问,现在出于安全方面的考虑,在系统中新建一个账号并把该共享目录设为只有该账号可以访问。 现在出现问题了,如果访问该共享目录的电脑以前没...
    99+
    2023-06-04
    自动保存 远程目录 登录密码 方法 登录 目录 密码
  • oracle密码文件的重建
    oracle11g的密码文件是在目录 /u01/app/oracle/product/11.2.0/dbhome_1/dbs下面新建密码文件的命令orapwd file=orapwcapaas(o...
    99+
    2024-04-02
  • 云服务器怎么远程登录账号密码
    如果您需要远程登录您的云服务器账号密码,可以按照以下步骤进行操作: 打开 Windows 操作系统的 Microsoft Azure 网站。 在网页上点击“更多”选项卡,然后选择“远程登录选项”。 在远程登录选项页面上,选择“仅来自我的...
    99+
    2023-10-26
    账号 密码 服务器
  • 腾讯云服务器远程登录密码忘了
    1. 密码找回方式 如果您忘记了腾讯云服务器的远程登录密码,可以通过以下方式找回: 登录腾讯云控制台,进入云服务器实例列表页面。 找到需要找回密码的云服务器实例,点击右侧的“登录”按钮。 在弹出的登录窗口中,选择“忘记密码”选项。 根据...
    99+
    2023-10-27
    腾讯 密码 服务器
  • 华为云服务器远程登录密码忘了
    如果您在华为云服务器上进行远程登录时忘记了密码,您可以尝试以下步骤: 检查密码是否与您的账户相关。在华为云服务器的控制台窗口中,您可以查看登录日志。如果有任何记录,请尝试联系华为云服务器的技术支持团队寻求帮助。 检查登录凭据是否已经丢失...
    99+
    2023-10-26
    华为 密码 服务器
  • 阿里云服务器远程登录账号密码
    如果您想远程登录阿里云服务器,可以按照以下步骤操作: 首先,下载并安装阿里云服务器操作系统和应用程序组件,例如Surfing Edge等。 登录阿里云账号,并创建新的账户。 登录后台,点击“云上的服务”选项卡,选择“服务登录”或“登录后...
    99+
    2023-10-27
    阿里 账号 密码
  • Windows中如何清除自动保存的远程目录登录密码
    小编给大家分享一下Windows中如何清除自动保存的远程目录登录密码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问:我的电脑(Windows XP SP2)中有...
    99+
    2023-06-13
  • Oracle 密码文件与用户密码的关系
    今天一位同事接到一项任务是修改数据库SYS和SYSTEM用户的密码,老大在布置任务的时候还带了一句别忘了同步密码文件,于是想到了自己前几天写的一篇博客介绍Oracle密码文件的,当时只是写了如何创建密码文件...
    99+
    2024-04-02
  • 云服务器怎么远程登录账号和密码
    云服务器提供了远程登录和访问服务,使用远程登录可以让您在本地服务器上登录您在云服务器上设置的账号、密码,而无需通过本地客户端或网页。但是,请注意,远程登录需要您的本地服务器支持该功能。如果您的服务器无法提供支持,则需要确保您已经在云服务器上...
    99+
    2023-10-26
    账号 密码 服务器
  • 腾讯云服务器远程登录密码是什么
    作为 AI,我无法获取腾讯云服务器的远程登录密码。但是,你可以通过以下步骤来重置腾讯云服务器的远程登录密码: 登录腾讯云控制台,进入云服务器实例列表页面。 找到需要重置密码的云服务器实例,点击其名称进入详情页面。 在详情页面中,找到“登...
    99+
    2023-10-27
    腾讯 密码 服务器
  • 华为云服务器远程登录密码是什么
    华为云服务器远程登录密码是您在使用华为云服务器时需要输入的密码,密码通常包含一组数字和字母组合,需要与服务器验证成功后方可成功登录服务器。 以下是华为云服务器远程登录密码的详细说明: 确认服务器登录路径:在您的操作系统中,使用以下命令查...
    99+
    2023-10-26
    华为 密码 服务器
  • 腾讯云服务器远程登录密码是多少
    方法一:尝试使用第三方远程登录工具 如果你想使用腾讯云服务器的远程登录功能,但不知道服务器的远程登录密码,可以尝试使用第三方远程登录工具,比如 Wechat、QQ 等。这些工具可以在不需要服务器权限的情况下,连接到服务器,并远程登录服务器...
    99+
    2023-10-28
    腾讯 密码 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作