1. 首页 > Oracle教程 > 正文

Oracle教程FG185-操作系统认证

Part01-基础概念与理论知识

1.1 操作系统认证原理

风哥教程参考Oracle官方文档Security部分。Oracle数据库操作系统认证允许用户使用操作系统用户身份登录数据库,无需输入数据库密码。这是通过验证用户的操作系统进程凭据实现的。更多视频教程www.fgedu.net.cn

1.2 操作系统认证的优势

1. 简化登录过程,无需记忆多个密码;2. 与操作系统安全策略集成;3. 减少密码管理工作量;4. 提高安全性,避免密码在网络中传输。

1.3 操作系统认证的类型

1. 本地操作系统认证:在数据库服务器本地登录;2. 远程操作系统认证:通过网络远程登录,需要配置信任关系。

Part02-生产环境规划与建议

2.1 用户组规划

生产环境建议创建专用的操作系统用户组用于Oracle数据库访问,如oinstall、dba、oper等。根据用户的角色分配到不同的组。

2.2 安全策略

制定严格的操作系统用户管理策略,包括密码策略、用户生命周期管理、权限最小化等。学习交流加群风哥微信: itpux-com

生产环境建议:仅允许数据库管理员和必要的系统用户使用操作系统认证,普通用户应使用数据库密码认证。

2.3 远程访问规划

如果需要远程操作系统认证,需要配置Oracle Net Services的信任关系,确保网络安全。

Part03-生产环境项目实施方案

3.1 配置操作系统用户和组

创建Oracle数据库所需的操作系统用户和组。

# 创建Oracle用户组
# groupadd -g 54321 oinstall
# groupadd -g 54322 dba
# groupadd -g 54323 oper

# 创建Oracle用户
# useradd -u 54321 -g oinstall -G dba,oper oracle

# 创建普通用户用于测试
# useradd -u 1001 fgedu_user
# usermod -a -G dba fgedu_user

# 设置用户密码
# passwd oracle
# passwd fgedu_user

3.2 配置sqlnet.ora文件

配置数据库以启用操作系统认证。

# 编辑sqlnet.ora文件
# vi $ORACLE_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (BEQ, NTS)
# 对于Linux/Unix系统使用:SQLNET.AUTHENTICATION_SERVICES = (BEQ, ALL)

SQLNET.AUTHENTICATION_GSSAPI_SERVICE = oracle
SQLNET.AUTHENTICATION_GSSAPI_KEYTAB = /etc/krb5.keytab

3.3 配置本地操作系统认证

配置数据库以允许本地操作系统认证。

# 登录到数据库
$ sqlplus / as sysdba

SQL> SHOW PARAMETER remote_login_passwordfile;NAME TYPE VALUE
———————————— ———– ——————————
remote_login_passwordfile string EXCLUSIVE

# 确保REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVE或SHARED
# 如果需要修改
SQL> ALTER SYSTEM SET remote_login_passwordfile = ‘EXCLUSIVE’ SCOPE = SPFILE;System altered.

# 重启数据库使配置生效
SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;

3.4 创建操作系统认证用户

在数据库中创建映射到操作系统用户的数据库用户。

# 创建OS认证的系统用户
SQL> CREATE USER OPS$ORACLE IDENTIFIED EXTERNALLY;User created.

SQL> GRANT DBA TO OPS$ORACLE;Grant succeeded.

# 创建OS认证的普通用户
SQL> CREATE USER OPS$FGEDU_USER IDENTIFIED EXTERNALLY;User created.

SQL> GRANT CONNECT, RESOURCE TO OPS$FGEDU_USER;Grant succeeded.

# 创建表空间和表
SQL> CREATE TABLESPACE fgedu_data DATAFILE ‘/oradata/fgedudb/fgedu_data01.dbf’ SIZE 10G AUTOEXTEND ON NEXT
1G;Tablespace created.

SQL> ALTER USER OPS$FGEDU_USER DEFAULT TABLESPACE fgedu_data;User altered.

SQL> CREATE TABLE OPS$FGEDU_USER.emp (id NUMBER, name VARCHAR2(50), salary NUMBER);Table created.

SQL> INSERT INTO OPS$FGEDU_USER.emp VALUES (1, ‘风哥1号’, 5000);1 row created.

SQL> COMMIT;Commit complete.

Part04-生产案例与实战讲解

4.1 使用本地操作系统认证登录

使用操作系统用户登录数据库,无需输入密码。

# 切换到oracle用户
# su – oracle

# 使用操作系统认证登录数据库
$ sqlplus /SQL*Plus: Release 19.0.0.0.0 – Production on Thu Mar 31 12:00:00 2026
Version 19.3.0.0.0

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

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

SQL> SHOW USER;USER is “SYS”

SQL> SELECT * FROM v$version;BANNER BANNER_FULL BANNER_LEGACY CON_ID
——————————————————————————–
——————————————————————————–
——————————————————————————– ———-
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production Oracle Database 19c Enterprise
Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production 0

4.2 使用普通用户操作系统认证

使用普通操作系统用户登录数据库。

# 切换到fgedu_user用户
# su – fgedu_user

# 使用操作系统认证登录数据库
$ sqlplus /SQL*Plus: Release 19.0.0.0.0 – Production on Thu Mar 31 12:05:00 2026
Version 19.3.0.0.0

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

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

SQL> SHOW USER;USER is “OPS$FGEDU_USER”

SQL> SELECT * FROM emp;ID NAME SALARY
———- ————————————————– ———-
1 风哥1号 5000

SQL> INSERT INTO emp VALUES (2, ‘风哥2号’, 6000);1 row created.

SQL> COMMIT;Commit complete.

4.3 配置远程操作系统认证

配置数据库以允许远程操作系统认证,需要使用Oracle Net Services的信任关系。学习交流加群风哥QQ113257174

# 配置listener.ora文件
# vi $ORACLE_HOME/network/admin/listener.ora

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.fgedu.net.cn)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LISTENER = /oracle/app/oracle

# 配置sqlnet.ora文件,添加远程认证配置
# vi $ORACLE_HOME/network/admin/sqlnet.ora

# 对于Linux/Unix系统
SQLNET.AUTHENTICATION_SERVICES = (BEQ, TCPS, IPC)

# 配置tnsnames.ora文件
# vi $ORACLE_HOME/network/admin/tnsnames.ora

FGEDUDBS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgedudb)
)
)

4.4 测试远程操作系统认证

在客户端上测试远程操作系统认证。

# 在客户端机器上创建相同的操作系统用户
# useradd -u 1001 fgedu_user

# 配置客户端的sqlnet.ora文件
# vi $ORACLE_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (ALL)

# 配置客户端的tnsnames.ora文件
# vi $ORACLE_HOME/network/admin/tnsnames.ora

FGEDUDBS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgedudb)
)
)

# 测试远程操作系统认证
$ sqlplus /@FGEDUDBS

SQL*Plus: Release 19.0.0.0.0 – Production on Thu Mar 31 12:15:00 2026
Version 19.3.0.0.0

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

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

SQL> SHOW USER;USER is “OPS$FGEDU_USER”

SQL> SELECT * FROM emp;ID NAME SALARY
———- ————————————————– ———-
1 风哥1号 5000
2 风哥2号 6000

4.5 管理操作系统认证用户

管理操作系统认证用户的权限和状态。

# 登录到数据库
$ sqlplus / as sysdba

# 查询操作系统认证用户
SQL> SELECT username, account_status, created
FROM dba_users
WHERE username LIKE ‘OPS$%’;USERNAME ACCOUNT_STATUS CREATED
—————————— ——————————– ———
OPS$ORACLE OPEN 31-MAR-26
OPS$FGEDU_USER OPEN 31-MAR-26

# 授予权限给操作系统认证用户
SQL> GRANT CREATE TABLE, CREATE VIEW TO OPS$FGEDU_USER;Grant succeeded.

# 锁定操作系统认证用户
SQL> ALTER USER OPS$FGEDU_USER ACCOUNT LOCK;User altered.

# 测试锁定后的登录
$ su – fgedu_user
$ sqlplus /SQL*Plus: Release 19.0.0.0.0 – Production on Thu Mar 31 12:20:00 2026
Version 19.3.0.0.0

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

ERROR: ORA-28000: the account is locked

Enter user-name:

Part05-风哥经验总结与分享

1. 操作系统认证适用于数据库管理员和系统维护人员,简化了登录过程。风哥提示:生产环境建议仅对管理员启用操作系统认证,普通用户使用密码认证。

2. 确保操作系统用户的安全性,使用强密码策略和定期密码更换。

3. 远程操作系统认证需要谨慎配置,确保网络安全和信任关系的正确设置。

4. 定期审计操作系统认证用户的登录情况,及时发现异常访问。更多学习教程公众号风哥教程itpux_com

5. 结合操作系统的用户管理功能,可以实现用户的集中管理和权限控制。

6. 在混合认证环境中,需要明确区分操作系统认证用户和密码认证用户,避免权限混淆。from oracle:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息