關於Oracle和MySQL中的無密碼登入
無密碼登入在一定程度上能夠簡化流程,對於密碼敏感,但是又需要提供訪問許可權的情況下是一個不錯的選擇。尤其是在乙方在做一些操作的時候,要密碼和給密碼是一個糾結的問題。不給沒法工作,給了又對資訊保安又影響。
在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
如果希望檢視驗證的明細資訊,可以使用下面的命令。
[ora11g@oel1 wallet]$ mkstore -wrl /u02/ora11g/wallet -listCredential
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:
List credential (index: connect_string username)
1: test11g n1
配置完成之後工作就完成了,我們可以簡單驗證一下。
$ 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>
如果需要禁用刪除也是很方便的。
刪除驗證資訊
[ora11g@oel1 wallet]$ mkstore -wrl /u02/ora11g/wallet -deleteCredential test11g
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: 1
Delete credential
Delete 1
刪除錢包
[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 print --login-path=fastlogin
但是預設的login檔案還是存在的。
[mysql@oel1 ~]$ ls -la
total 1204364
drwxr-xr-x 2 mysql dba 4096 Apr 21 14:58 log
drwxr-xr-x 3 mysql dba 4096 Nov 4 2014 meb-3.11.1-linux-glibc2.5-x86-32bit
-rw------- 1 mysql dba 336 May 22 12:40 .mylogin.cnf
在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
如果希望檢視驗證的明細資訊,可以使用下面的命令。
[ora11g@oel1 wallet]$ mkstore -wrl /u02/ora11g/wallet -listCredential
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:
List credential (index: connect_string username)
1: test11g n1
配置完成之後工作就完成了,我們可以簡單驗證一下。
$ 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>
如果需要禁用刪除也是很方便的。
刪除驗證資訊
[ora11g@oel1 wallet]$ mkstore -wrl /u02/ora11g/wallet -deleteCredential test11g
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: 1
Delete credential
Delete 1
刪除錢包
[ora11g@oel1 wallet]$ mkstore -wrl /u02/ora11g/wallet -delete
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: 1
也可以選擇相應修改sqlnent.ora裡面的配置
而如果使用MySQL來實現,則需要透過mysql_config_editor來配置。
mysql_config_editor的命令提示如下,可以看出可使用的選項還是相對比較簡單的。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: 1
也可以選擇相應修改sqlnent.ora裡面的配置
而如果使用MySQL來實現,則需要透過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_config_editor print --login-path=fastlogin
[fastlogin]
user = root
password = *****
host = localhost
socket = /u02/mysql/mysqld_mst.sock
大功告成,這個時候直接登入即可。
[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>
如果需要禁用刪除,可以這麼做。
mysql_config_editor remove --login-path=fastlogin
這個時候再次檢視就沒有任何資訊了。Enter password:
配置完成之後,會在當前路徑下生成一個隱藏檔案.mylogin.cnf
[mysql@oel1 ~]$ ll -la .mylogin*
-rw------- 1 mysql dba 480 May 17 22:10 .mylogin.cnf
如果需要檢視裡面的明細資訊,可以使用如下的命令,當然密碼是不會顯示出來的。
[mysql@oel1 ~]$ mysql_config_editor print --login-path=fastlogin
[fastlogin]
user = root
password = *****
host = localhost
socket = /u02/mysql/mysqld_mst.sock
大功告成,這個時候直接登入即可。
[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>
如果需要禁用刪除,可以這麼做。
mysql_config_editor remove --login-path=fastlogin
[mysql@oel1 ~]$ mysql_config_editor print --login-path=fastlogin
但是預設的login檔案還是存在的。
[mysql@oel1 ~]$ ls -la
total 1204364
drwxr-xr-x 2 mysql dba 4096 Apr 21 14:58 log
drwxr-xr-x 3 mysql dba 4096 Nov 4 2014 meb-3.11.1-linux-glibc2.5-x86-32bit
-rw------- 1 mysql dba 336 May 22 12:40 .mylogin.cnf
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1659551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 誰幹的mysql無密碼登入?薦MySql密碼
- mysql密碼和登入問題MySql密碼
- 修改 MySQL 登入密碼MySql密碼
- 網站的無密碼登入網站密碼
- ORACLE密碼檔案和登入方式Oracle密碼
- MySQL實現無密碼登入(mysql_config_editor)MySql密碼
- Linux SSH無密碼登入Linux密碼
- 關於登入(使用者名稱,密碼,驗證碼)密碼
- SSH無需密碼金鑰登入密碼
- 如何實現 SSH 無密碼登入密碼
- Oracle 11g通過wallet實現無密碼登入Oracle密碼
- 密碼登入密碼
- SSH無密碼登入到指定機器密碼
- SecureCRT for Mac 無法儲存登入密碼SecurecrtMac密碼
- ssh無密碼登入認證失敗密碼
- oracle 關於--密碼檔案Oracle密碼
- 關於oracle 密碼檔案Oracle密碼
- mysql設定複雜密碼中含$特殊符號導致無法命令列登入MySql密碼符號命令列
- unbuntu16.04 伺服器的 免密登入、祕鑰登入和禁止密碼登入 配置伺服器密碼
- unbuntu16.04 伺服器的 免密登入、秘鑰登入和禁止密碼登入 配置伺服器密碼
- Linux密碼策略和登入配置Linux密碼
- sqlplus密碼中帶 @的登入方法。SQL密碼
- 如何設定 Ubuntu 14.04 的 SSH 無密碼登入Ubuntu密碼
- win10怎麼關閉密碼_win10關閉登入密碼的方法Win10密碼
- 破解 MySQL5.7 資料庫的 root 登入密碼MySql資料庫密碼
- Google Chrome和Mozilla Firefox將支援全新無密碼登入規範GoChromeFirefox密碼
- 關於 MySQL root 賬號的預設密碼MySql密碼
- 關於mysql忘記密碼的解決策略MySql密碼
- linux新增信任關係免密碼登入Linux密碼
- 如何無需每次輸入密碼,在 Windows XP 中啟用自動登入?薦密碼Windows
- 密碼方式登入redis密碼Redis
- SSH免密碼登入密碼
- 關於oracle18位密碼生成Oracle密碼
- win10如何取消開機密碼登入 怎麼關閉電腦登入密碼win10Win10密碼
- 關於密碼密碼
- [Linux] SSH配置了免密碼登入,登入時還要輸入密碼Linux密碼
- 聊聊“密碼登入”、“手機快捷登入”和“第三方聯合登入”密碼
- uniapp 完成兩種方式登入 驗證碼登入 密碼登入APP密碼