1. 程式人生 > >mysql連線許可權測試

mysql連線許可權測試

本實驗完成以下測試需求:
需求一:驗證'%'是否包含'localhost'
需求二:驗證localhost和127.0.0.1分別使用的連線協議
版本:mariadb 10.1.12


一.驗證'%'是否包含'localhost'
先建立帳號和授權:
MariaDB [(none)]> grant all privileges on *.* to 'avapps'@'%' identified by "av166apps";
Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> exit
Bye
[

[email protected] ~]$ mysql -uavapps -pav166apps  --socket=/tmp/mysql3306.sock
ERROR 1045 (28000): Access denied for user 'avapps'@'localhost' (using password: YES)
當只有'avapps'@'%'有許可權時,無法登入。
MariaDB [(none)]> select user,host from mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| avapps | %         |
| root    | 127.0.0.1 |
| root    | ::1       |
|         | localhost |
| root    | localhost |
|         | m2972  |
| root    | m2972  |
+---------+-----------+
7 rows in set (0.00 sec)


再增加
[email protected]
'localhost'使用者:
MariaDB [(none)]> grant all privileges on *.* to [email protected]'localhost' identified by 'av166apps';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| avapps | %         |
| root    | 127.0.0.1 |
| root    | ::1       |
|         | localhost |
| avapps | localhost |
| root    | localhost |
|         | m2972  |
| root    | m2972  |
+---------+-----------+
[
[email protected]
~]$ mysql -uavapps -pav166apps  --socket=/tmp/mysql3306.sock
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 28
Server version: 10.1.12-MariaDB MariaDB Server


Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MariaDB [(none)]>


現在能正常登入。
說明'%'是不包含'localhost'


二.驗證localhost和127.0.0.1分別使用的連線協議


1.在skip_name_resolve為開啟狀態下:
MariaDB [(none)]> show variables like 'skip%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| skip_external_locking     | ON    |
| skip_name_resolve         | ON    |
| skip_networking           | OFF   |
| skip_parallel_replication | OFF   |
| skip_replication          | OFF   |
| skip_show_database        | OFF   |


先drop使用者'avapps'@'%'
MariaDB [(none)]> drop user 'avapps'@'%';
Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> exit
Bye
[[email protected] ~]$ mysql -uavapps -pav166apps -h 127.0.0.1
ERROR 1045 (28000): Access denied for user 'avapps'@'127.0.0.1' (using password: YES)


 


mysql -uavapps -pav166apps -h 127.0.0.1


通過127.0.0.1連線時使用TCP/IP協議:
[[email protected] ~]$ mysql -uavapps -pav166apps -h 127.0.0.1
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 34
Server version: 10.1.12-MariaDB MariaDB Server


Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 10.1.12-MariaDB, for Linux (x86_64) using readline 5.1


Connection id:          34
Current database:
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.1.12-MariaDB MariaDB Server
Protocol version:       10
Connection:             127.0.0.1 via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 day 22 hours 14 min 17 sec


Threads: 2  Questions: 68  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 11  Queries per second avg: 0.000


不加127.0.0.1時,預設連線使用socket協議:
[[email protected] ~]$ mysql -uavapps -pav166apps
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 35
Server version: 10.1.12-MariaDB MariaDB Server


Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 10.1.12-MariaDB, for Linux (x86_64) using readline 5.1


Connection id:          35
Current database:
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.1.12-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql3306.sock
Uptime:                 1 day 22 hours 14 min 54 sec


Threads: 2  Questions: 72  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 11  Queries per second avg: 0.000


加localhost連線使用socket協議:
[[email protected] ~]$ mysql -uavapps -pav166apps -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 59
Server version: 10.1.12-MariaDB MariaDB Server


Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 10.1.12-MariaDB, for Linux (x86_64) using readline 5.1


Connection id:          59
Current database:
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.1.12-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql3306.sock
Uptime:                 1 day 22 hours 26 min 16 sec


Threads: 4  Questions: 371  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 11  Queries per second avg: 0.002




2.在skip_name_resolve為停用狀態下:
更改配置檔案中skip_name_resolve為off,並重啟mysql.
MariaDB [(none)]> show variables like 'skip%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| skip_external_locking     | ON    |
| skip_name_resolve         | OFF    |
| skip_networking           | OFF   |
| skip_parallel_replication | OFF   |
| skip_replication          | OFF   |
| skip_show_database        | OFF   |


停掉skip_name_resolve後,用127.0.0.1登入轉變成了localhost,用[email protected]'127.0.0.1'的密碼無法登入:
-bash-4.1$ mysql -uavapps -p -h 127.0.0.1 -P 3306
Enter password: 
ERROR 1045 (28000): Access denied for user 'avapps'@'localhost' (using password: YES)


-bash-4.1$ mysql -uavapps -p -h 127.0.0.1
Enter password: 
ERROR 1045 (28000): Access denied for user 'avapps'@'localhost' (using password: YES)


而用[email protected]'localhost'登入才成功,並且使用TCP/IPt協議:
-bash-4.1$ mysql -uavapps -p -h localhost
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
MariaDB [(none)]>


實驗總結:
1.授權中的'%'不包含'localhost';
2.skip_name_resolve開啟情況下,127.0.0.1連線時用'avapps'@'%'帳號使用TCP/IP協義,而預設或用localhost連線時使用socket協議;
3.skip_name_resolve關閉情況下,127.0.0.1連線會轉換成用'avapps'@'localhost'帳號使用TCP/IP協義,而預設或用localhost連線時使用socket協議;

相關推薦

mysql連線許可權測試

本實驗完成以下測試需求: 需求一:驗證'%'是否包含'localhost' 需求二:驗證localhost和127.0.0.1分別使用的連線協議 版本:mariadb 10.1.12 一.驗證'%'是否包含'localhost' 先建立帳號和授權: MariaDB [(no

Mysql連線許可權總結

前言:最近專案在做驗收,驗收過程中遇到不少大大小小的問題甚是慌張,今天這個帖子針對mysql連線許可權做下總結 描述:我們系統有個資料來源連線功能,可以輸入資料庫連線資訊,拉取資料庫的元資料資訊,問題在測試人員在輸入IP的方式等資訊時連線時,卻報錯了 Access den

mysql更改遠端連線許可權

1.使用管理員模式開啟cmd 2.使用mysql -u root -p 輸入密碼登入 3.使用語句更改許可權 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION 4.使用mysq

mysql8.0遠端連線許可權設定和專案連線mysql時報caching_sha2_password錯誤

1.登入MySQL mysql -u root -p 輸入您的密碼 2.選擇 mysql 資料庫 use mysql; 因為 mysql 資料庫中儲存了使用者資訊的 user 表。 3.在 mysql 資料庫的 user 表中檢視當前 root 使用者的相關資訊 se

win10下配置Mysql,並設定遠端連線許可權

安裝版的mysql解除安裝起來太麻煩了,所以選擇使用免安裝版的不失為一個好的選擇,畢竟免安裝版的東西都在一個資料夾下,不要了直接刪了資料夾就好~~ 1.首先是下載了,點入官網連結,一直到最下面,選擇第一個下載,解壓到你想讓它待的地方——就相當於安裝目錄。 2.在解壓得到的資料夾(我

jsp測試MySql連線資料庫

如何在jsp頁面獲取資料庫連線並獲取資料庫中的資料?(比較簡單,蠻寫著玩的) 1、前期準備(資料庫與表建立) 這裡我直接把建立指令碼放在這裡,需要的朋友自己拿去執行下就可以了,指令碼如下: create database test; use test; CREATE TABLE user

Linux使用者管理、許可權管理、歸檔、壓縮以及建立連線測試網路網路連通性

uid:使用者標識號 gid:組標識號 預設情況下,使用者uid和gid一樣 使用者的分類: 超級使用者(root):許可權特別大,uid=0,gid=0,生產環境建議不要使用 普通使用者:uid>=500,Ubuntu一般>=1000,一般許可權系統管理,

本地遠端連線雲伺服器的Mysql , 連線不了問題的可能原因: 繫結ip,設定訪問許可權,埠號開放

1. 先設定雲伺服器上的mysql允許遠端訪問 . 編輯檔案/etc/mysql/mysql.conf.d/mysqld.cnf: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 註釋掉bind-address = 127.0.0.1:修改為

Java 連線簡單測試MySQL資料庫

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public cl

navicat for mysql建立連線測試失敗

沒有設定密碼,以為設定了,所以登不上,中間找了很多個解決方法,然後發現了一個用命令控制視窗操作資料庫的方法 一個非常好用的方法可以參考,連線如下:http://www.cnblogs.com/flyoung/p/4945696.html

Android連線MySQL方法,測試成功

使用jdbc,程式碼如下: package com.example.mysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import

測試MySql連線是否正常

<%@ page contentType="text/html; charset=gb2312" %><%@ page language="java" %><%@ page import="com.mysql.jdbc.Driver" %>

連線伺服器MySQL,配置遠端連線許可權

(1)首先在本地進入mysql資料庫的mysql庫內 use mysql; (2)建立使用者: grant all PRIVILEGES on (*).* to [email protected]'%' identified by 'pas

Java使用JDBC連線mysql資料庫及測試是否連線成功的方法

一、連線mysql資料庫: 步驟一:在eclipse下面建一個專案,我的是JDBC_Test, 步驟二:選中專案名稱,右鍵選擇Build Path->Configure Build Path…. 步驟三:進入Java Build Path 選擇L

Spring 和 mysql資料庫的連線測試--Jdbc

普遍的開發中, 通常使用會用到Spring框架和Mysql資料庫 , 下面分享個人的Mysql在Spring中的配置以及它的連線測試. 本人在開發中 , 使用的是Maven管理工具 .  ( 關於Ma

Mysql 造數測試

mysql 造數測試 1、創建custom數據庫create database custom;2、創建cuser表create table cuser (id int unsigned auto_increment primary key ,account varchar(50)

mysql+mycat壓力測試一例

mysql mycat sysbench前言有很多人擔心生產系統上新東西的程序怕壓力跟不上和穩定性不行,是的,大家都怕,所以領導要求做一次壓力測試,我個人也覺得是有必要的.如果按原理來說,mycat如果不做分片,純粹只是代理的話,他所做的事情,其實更多的是數據轉發,而這個轉發能力,當然就是看他能有多強.既然理

Mysql 性能測試工具 sysbench的安裝和使用

library serve dia ransac 2.6 需要 option 5.7 hive 工作上需要用到AWS和Azure的Mysql服務,需要測試比較一下兩個雲服務的性能。於是開始百度 + google,查找性能測試工具。最終決定用sysbench。sys

MySQL】【壓測】使用sysbench對MySQL進行壓力測試

usr with sleep library val repos then plot 停止 1.背景 ? 出自percona公司,是一款多線程系統壓測工具,可以根據影響數據庫服務器性能的各種因素來評估系統的性能。例如,可以用來測試文件IO,操作系統調度器,內存分配和傳輸

Jmeter之mysql性能測試

https bsp 但是 建立 工具 配置 下載 圖片 AC Jmeter官網地址:https://jmeter.apache.org/ 作為開發人員,必要的性能測試還是需要掌握的,雖然配置druid可以比較直觀獲得sql的執行時間,那些表被訪問的比較多等等,但是不能測試s