关于Oracle和MySQL中的无密码登录 (r5笔记第39天)

无密码登录在一定程度上能够简化流程,对于密码敏感,但是又需要提供访问权限的情况下是一个不错的选择。尤其是在乙方在做一些操作的时候,要密码和给密码是一个纠结的问题。不给没法工作,给了又对信息安全又影响。 在Oracle和MySQL中都有相应的解决方案,大道至简,这个功能的目的都是类似的。 在Oracle中可以通过设置wallet来实现,在10g版本开始支持。而在MySQL中自5.6版本开始可以使用--login-path来实现。 先来看看Oracle中的wallet实现无密码登录,可以通过mkstore来配置,我们可以使用--help得到命令使用的帮助。 [ora11g@oel1 admin]$ mkstore --help Oracle Secret Store Tool : Version 11.2.0.1.0 - Production Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. No wallet location specified. mkstore [-wrl wrl] [-create] [-createSSO] [-createLSSO] [-createALO] [-delete] [-deleteSSO] [-list] [-createEntry alias secret] [-viewEntry alias] [-modifyEntry alias secret] [-deleteEntry alias] [-createCredential connect_string username password] [-listCredential] [-modifyCredential connect_string username password] [-deleteCredential connect_string] [-help] [-nologo] 我们首先来创建钱包,指定钱包路径为/u02/ora11g/wallet,对于密码还是有一定的要求,太简单也不行。 $ mkstore -wrl /u02/ora11g/wallet -create Oracle Secret Store Tool : Version 11.2.0.1.0 - Production Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. Enter password: Enter password again: 生成钱包后,会在指定的路径下生成两个文件。 $ ll total 8 -rw------- 1 ora11g dba 3589 May 17 21:37 cwallet.sso -rw------- 1 ora11g dba 3512 May 17 21:37 ewallet.p12 我们可以指定临时的连接串来配置到钱包里面,比如我们认为test11g是一个临时连接串,可以使用tnsping来测试,确保连接串是可访问的。 $tnsping test11g Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oel1.oracle.com)(PORT = 1511))) (CONNECT_DATA = (SERVICE_NAME = TEST11G))) OK (0 msec) 配置完成之后,我们需要在登录之前在sqlnet.ora中配置钱包的路径。sqlnet.ora中需要配置的内容如下: $ cat sqlnet.ora WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u02/ora11g/wallet) ) ) SQLNET.WALLET_OVERRIDE=true 这些配置都搞定以后我们就可以指定对应的连接串,对应的用户名密码。 $ mkstore -wrl /u02/ora11g/wallet -createCredential test11g n1 n1 Oracle Secret Store Tool : Version 11.2.0.1.0 - Production Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. Enter wallet password: l 1 Create credential oracle.security.client.connect_string1 配置完成之后工作就完成了,我们可以简单验证一下。 $ sqlplus /@test11g SQL*Plus: Release 11.2.0.1.0 Production on Sun May 17 21:45:59 2015 With the Partitioning, OLAP, Data Mining and Real Application Testing options n1@TEST11G> 而如果使用MySQL来实现,则需要通过mysql_config_editor来配置。 mysql_config_editor的命令提示如下,可以看出可使用的选项还是相对比较简单的。 [mysql@oel1 ~]$ mysql_config_editor set --help mysql_config_editor Ver 1.0 Distrib 5.6.23, for linux-glibc2.5 on i686 Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. MySQL Configuration Utility. Description: Write a login path to the login file. Usage: mysql_config_editor [program options] [set [command options]] -?, --help Display this help and exit. -h, --host=name Host name to be entered into the login file. -G, --login-path=name Name of the login path to use in the login file. (Default : client) -p, --password Prompt for password to be entered into the login file. -u, --user=name User name to be entered into the login file. -S, --socket=name Socket path to be entered into login file. -P, --port=name Port number to be entered into login file. -w, --warn Warn and ask for confirmation if set command attempts to overwrite an existing login path (enabled by default). (Defaults to on; use --skip-warn to disable.) 我们直接可以通过一个命令来完成配置,制定这个无密码登录的别名为fastlogin

[mysql@oel1 ~]$ mysql_config_editor set --login-path=fastlogin --user=root --host=localhost --password --socket=/u02/mysql/mysqld_mst.sock Enter password: 配置完成之后,会在当前路径下生成一个隐藏文件.mylogin.cnf [mysql@oel1 ~]$ ll -la .mylogin* -rw------- 1 mysql dba 480 May 17 22:10 .mylogin.cnf [mysql@oel1 ~]$ 大功告成,这个时候直接登录即可。 [mysql@oel1 ~]$ mysql --login-path=fastlogin Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.23-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-05-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏耕耘实录

RHEL7.X系列及周边Linux发行版中,关于MBR与GPT的选择一些思考与建议

存储的选型、规划与管理等工作一直以来都是日常系统运维工作中的重点。MBR与GPT两种类型的分区表的选择与使用则是在磁盘管理中需要根据应用场景来注或考虑的要点。结...

1182
来自专栏实战docker

pinpoint插件开发之一:牛刀小试,调整gson插件

从本章开始我们一起来实战pinpoint插件开发,做一些实用的pinpoint插件,本着先易后难的原则,我们从修改现有插件开始吧; 准备工作 本次实战的操作环境...

3295
来自专栏腾讯Bugly的专栏

《Android外部存储》

| 导语 外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在...

5565
来自专栏杨建荣的学习笔记

MySQL主从不一致的修复过程(r10笔记第96天)

昨天发现一个5.7的MySQL从库在应用日志的时候报出了错误。从库启用过了并行复制。Last Error的内容为: Last_Error: Coordinato...

4319
来自专栏用户2442861的专栏

使用IntelliJ IDEA开发SpringMVC网站(四)用户管理

转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 。

2291
来自专栏杨建荣的学习笔记

Oracle 12c DG新特性Far Sync(r10笔记第67天)

Oracle的Data Guard技术再11g中有了Active Data Guard,就产生了很多的技术解决方案,比如读写分离,多活的技术支撑等。 12c 中...

4957
来自专栏快乐八哥

Angular企业级开发(4)-ngResource和REST介绍

一、RESTful介绍 ? RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fie...

1927
来自专栏乐沙弥的世界

使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例

--==========================================

1163
来自专栏乐沙弥的世界

基于Innobackupex的完全恢复

    对于MySQL的完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到故障点。这里的完全恢复是相对于时点恢复(也叫...

1112
来自专栏张戈的专栏

gh-ost:在线DDL修改MySQL表结构工具

在之前,我分享过一次 pt-online-schema-change 在线 DDL 的工具实践记录,在实际使用过程中,发现部门的很多老系统大量使用了触发器,从而...

7957

扫码关注云+社区

领取腾讯云代金券