加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle身份验证的方式

发布时间:2020-12-12 12:43:31 所属栏目:百科 来源:网络整理
导读:Oracle 身份验证方式有如下几种: 操作系统身份验证 口令文件验证 口令身份验证 外部身份验证 全局身份验证 ??前两项技术仅供管理员使用,最后一项技术要求使用 LDAP 目录服务器。LDAP 目录服务器是 Oracle Internet Directory(OID),作为 Oracle 应用服务器

Oracle 身份验证方式有如下几种:

  • 操作系统身份验证
  • 口令文件验证
  • 口令身份验证
  • 外部身份验证
  • 全局身份验证

??前两项技术仅供管理员使用,最后一项技术要求使用 LDAP 目录服务器。LDAP 目录服务器是 Oracle Internet Directory(OID),作为 Oracle 应用服务器的一部分发布。

?1.?操作系统和口令文件身份验证

????? 要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予 SYSDBA 或者 SYSOPER 权限:

????? GRANT [?sysdba? | sysoper?]? TO?username?;

????? 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。

????? 要使用口令文件身份验证,用户可以在使用 SQL*Plus 时通过以下语法连接:

????? CONNECT?username / password?[?@db_alias?] AS [ SYSOPER | SYSDBA ] ;

???? ?注意,可使用口令文件身份验证,通过 Oracle Net 连接到远程数据库。

????? 要使用操作系统身份验证,用户必须被确认为有权限访问 Oracle 二进制文件的操作系统用户之后,且在使用 SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:

????? CONNECT / AS [?SYSOPER | SYSDBA?] ;

????? 与 SYSDBA 和 SYSOPER 以同一种方式运行的第三种权限是 SYSSAM,此权限仅适用于 ASM 实例。

? 2. 口令身份验证

????? 在使用 SQL*Plus 时,通过口令身份验证进行连接的语法如下:

????? CONNECT?username?/?password?[?@db_alias?]

????? 这是 Oracle 一般用户使用得最多的一种身份验证方式。在使用口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令。验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出 STARTUP 命令或者 SHUTDOWN 命令。不允许 SYS 用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或LDAP 身份验证。

??3. 外部身份验证?

????? 如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。如前所述,这是 SYSDBA 和 SYSOPER 账户的要求,但也可以用于普通用户。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加料OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。可以用下列语句查询:

?

?1.?操作系统和口令文件身份验证

????? 要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予 SYSDBA 或者 SYSOPER 权限:

????? GRANT [?sysdba? | sysoper?]? TO?username?;

????? 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。

????? 要使用口令文件身份验证,用户可以在使用 SQL*Plus 时通过以下语法连接:

????? CONNECT?username / password?[?@db_alias?] AS [ SYSOPER | SYSDBA ] ;

???? ?注意,可使用口令文件身份验证,通过 Oracle Net 连接到远程数据库。

????? 要使用操作系统身份验证,用户必须被确认为有权限访问 Oracle 二进制文件的操作系统用户之后,且在使用 SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:

????? CONNECT / AS [?SYSOPER | SYSDBA?] ;

????? 与 SYSDBA 和 SYSOPER 以同一种方式运行的第三种权限是 SYSSAM,此权限仅适用于 ASM 实例。

? 2. 口令身份验证

????? 在使用 SQL*Plus 时,通过口令身份验证进行连接的语法如下:

????? CONNECT?username?/?password?[?@db_alias?]

????? 这是 Oracle 一般用户使用得最多的一种身份验证方式。在使用口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令。验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出 STARTUP 命令或者 SHUTDOWN 命令。不允许 SYS 用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或LDAP 身份验证。

??3. 外部身份验证?

????? 如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。如前所述,这是 SYSDBA 和 SYSOPER 账户的要求,但也可以用于普通用户。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加料OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。可以用下列语句查询:

?

?1.?操作系统和口令文件身份验证

????? 要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予 SYSDBA 或者 SYSOPER 权限:

????? GRANT [?sysdba? | sysoper?]? TO?username?;

????? 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。

????? 要使用口令文件身份验证,用户可以在使用 SQL*Plus 时通过以下语法连接:

????? CONNECT?username / password?[?@db_alias?] AS [ SYSOPER | SYSDBA ] ;

???? ?注意,可使用口令文件身份验证,通过 Oracle Net 连接到远程数据库。

????? 要使用操作系统身份验证,用户必须被确认为有权限访问 Oracle 二进制文件的操作系统用户之后,且在使用 SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:

????? CONNECT / AS [?SYSOPER | SYSDBA?] ;

????? 与 SYSDBA 和 SYSOPER 以同一种方式运行的第三种权限是 SYSSAM,此权限仅适用于 ASM 实例。

? 2. 口令身份验证

????? 在使用 SQL*Plus 时,通过口令身份验证进行连接的语法如下:

????? CONNECT?username?/?password?[?@db_alias?]

????? 这是 Oracle 一般用户使用得最多的一种身份验证方式。在使用口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令。验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出 STARTUP 命令或者 SHUTDOWN 命令。不允许 SYS 用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或LDAP 身份验证。

??3. 外部身份验证?

????? 如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。如前所述,这是 SYSDBA 和 SYSOPER 账户的要求,但也可以用于普通用户。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加料OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。可以用下列语句查询:

?

?1.?操作系统和口令文件身份验证

????? 要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予 SYSDBA 或者 SYSOPER 权限:

????? GRANT [?sysdba? | sysoper?]? TO?username?;

????? 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。

????? 要使用口令文件身份验证,用户可以在使用 SQL*Plus 时通过以下语法连接:

????? CONNECT?username / password?[?@db_alias?] AS [ SYSOPER | SYSDBA ] ;

???? ?注意,可使用口令文件身份验证,通过 Oracle Net 连接到远程数据库。

????? 要使用操作系统身份验证,用户必须被确认为有权限访问 Oracle 二进制文件的操作系统用户之后,且在使用 SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:

????? CONNECT / AS [?SYSOPER | SYSDBA?] ;

????? 与 SYSDBA 和 SYSOPER 以同一种方式运行的第三种权限是 SYSSAM,此权限仅适用于 ASM 实例。

? 2. 口令身份验证

????? 在使用 SQL*Plus 时,通过口令身份验证进行连接的语法如下:

????? CONNECT?username?/?password?[?@db_alias?]

????? 这是 Oracle 一般用户使用得最多的一种身份验证方式。在使用口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令。验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出 STARTUP 命令或者 SHUTDOWN 命令。不允许 SYS 用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或LDAP 身份验证。

??3. 外部身份验证?

????? 如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。如前所述,这是 SYSDBA 和 SYSOPER 账户的要求,但也可以用于普通用户。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加料OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。可以用下列语句查询:

?

?1.?操作系统和口令文件身份验证

????? 要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予 SYSDBA 或者 SYSOPER 权限:

????? GRANT [?sysdba? | sysoper?]? TO?username?;

????? 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。

????? 要使用口令文件身份验证,用户可以在使用 SQL*Plus 时通过以下语法连接:

????? CONNECT?username / password?[?@db_alias?] AS [ SYSOPER | SYSDBA ] ;

???? ?注意,可使用口令文件身份验证,通过 Oracle Net 连接到远程数据库。

????? 要使用操作系统身份验证,用户必须被确认为有权限访问 Oracle 二进制文件的操作系统用户之后,且在使用 SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:

????? CONNECT / AS [?SYSOPER | SYSDBA?] ;

????? 与 SYSDBA 和 SYSOPER 以同一种方式运行的第三种权限是 SYSSAM,此权限仅适用于 ASM 实例。

? 2. 口令身份验证

????? 在使用 SQL*Plus 时,通过口令身份验证进行连接的语法如下:

????? CONNECT?username?/?password?[?@db_alias?]

????? 这是 Oracle 一般用户使用得最多的一种身份验证方式。在使用口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令。验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出 STARTUP 命令或者 SHUTDOWN 命令。不允许 SYS 用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或LDAP 身份验证。

??3. 外部身份验证?

????? 如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。如前所述,这是 SYSDBA 和 SYSOPER 账户的要求,但也可以用于普通用户。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加料OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。

?4. 全局身份验证

??????一个用于管理身份的新兴标准时使用 LDAP 服务器。Oracle Internet Directory(OID) 就是 Oracle 符合 LDAP 标准的一个产品,全局用户就是在 LDAP 目录中定义的用户。

??5.?跟身份验证相关的几个参数和配置

????? 查看是否允许远程登录使用口令文件进行身份验证,有三个取值: SHARED/EXCLUSIVE/NONE,为 NONE 的话表示不允许远程使用口令文件验证

show parameter remote_login_passwordfile
 alter system set remote_login_passwordfile=‘NONE‘ scope=spfile
startup force
? 查看使用口令文件进行身份验证的用户列表:
select * from v$pwfile_users

?$ORACLE_HOME/network/admin/sqlnet.ora 配置文件中 SQLNET.AUTHENTICATION_SERVICES?参数,有三个取值:

  • NONE:作用是不允许通过 OS 系统用户登录数据库,需要提供用户名及密码;
  • ALL:作用是允许所有的登录方式;
  • NTS:作用是允许本地操作系统用户认证

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读