mysql 賬戶管理_Mysql賬戶管理原理與實現方法詳解

本文實例講述了Mysql賬戶管理原理與實現方法。分享給大家供大家參考,具體如下:

賬戶管理

在生產環境下操作數據庫時,絕對不可以使用root賬戶連接,而是創建特定的賬戶,授予這個賬戶特定的操作權限,然后連接進行操作,主要的操作就是數據的crud

MySQL賬戶體系:根據賬戶所具有的權限的不同,MySQL的賬戶可以分為以下幾種

服務實例級賬號:,啟動了一個mysqld,即為一個數據庫實例;如果某用戶如root,擁有服務實例級分配的權限,那么該賬號就可以刪除所有的數據庫、連同這些庫中的表

數據庫級別賬號:對特定數據庫執行增刪改查的所有操作

數據表級別賬號:對特定表執行增刪改查等所有操作

字段級別的權限:對某些表的特定字段進行操作

存儲程序級別的賬號:對存儲程序進行增刪改查的操作

賬戶的操作主要包括創建賬戶、刪除賬戶、修改密碼、授權權限等

注意:

進行賬戶操作時,需要使用root賬戶登錄,這個賬戶擁有最高的實例級權限

通常都使用數據庫級操作權限

授予權限

需要使用實例級賬戶登錄后操作,以root為例

主要操作包括:

查看所有用戶

修改密碼

刪除用戶

1. 查看所有用戶

所有用戶及權限信息存儲在mysql數據庫的user表中

查看user表的結構

desc user;

主要字段說明:

Host表示允許訪問的主機

User表示用戶名

authentication_string表示密碼,為加密后的值

查看所有用戶

select host,user,authentication_string from user;

結果

mysql> select host,user,authentication_string from user;

+-----------+------------------+-------------------------------------------+

| host | user | authentication_string |

+-----------+------------------+-------------------------------------------+

| localhost | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |

| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| localhost | debian-sys-maint | *EFED9C764966EDB33BB7318E1CBD122C0DFE4827 |

+-----------+------------------+-------------------------------------------+

3 rows in set (0.00 sec)

2. 創建賬戶、授權

需要使用實例級賬戶登錄后操作,以root為例

常用權限主要包括:create、alter、drop、insert、update、delete、select

如果分配所有權限,可以使用all privileges

2.1 創建賬戶&授權

grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' identified by '密碼';

2.2 示例1

創建一個laowang的賬號,密碼為123456,只能通過本地訪問, 并且只能對jing_dong數據庫中的所有表進行讀操作

step1:使用root登錄

mysql -uroot -p

回車后寫密碼,然后回車

step2:創建賬戶并授予所有權限

grant select on jing_dong.* to 'laowang'@'localhost' identified by '123456';

說明

可以操作python數據庫的所有表,方式為:jing_dong.*

訪問主機通常使用 百分號% 表示此賬戶可以使用任何ip的主機登錄訪問此數據庫

訪問主機可以設置成 localhost或具體的ip,表示只允許本機或特定主機訪問

查看用戶有哪些權限

show grants for laowang@localhost;

step3:退出root的登錄

quit

step4:使用laowang賬戶登錄

mysql -ulaowang -p

回車后寫密碼,然后回車

登錄后效果如下圖

202001081140231.png

202001081140232.png

2.3 示例2

創建一個laoli的賬號,密碼為12345678,可以任意電腦進行鏈接訪問, 并且對jing_dong數據庫中的所有表擁有所有權限

grant all privileges on jing_dong.* to "laoli"@"%" identified by "12345678"

202001081140233.png

202001081140234.png

202001081140235.png

賬戶操作

1. 修改權限

grant 權限名稱 on 數據庫 to 賬戶@主機 with grant option;

202001081140236.png

202001081140237.png

202001081140238.png

2. 修改密碼

使用root登錄,修改mysql數據庫的user表

使用password()函數進行密碼加密

update user set authentication_string=password('新密碼') where user='用戶名';

例:

update user set authentication_string=password('123') where user='laowang';

注意修改完成后需要刷新權限

刷新權限:flush privileges

3. 遠程登錄(危險慎用)

如果向在一個Ubuntu中使用msyql命令遠程連接另外一臺mysql服務器的話,通過以下方式即可完成,但是此方法僅僅了解就好了,不要在實際生產環境中使用

修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

202001081140239.png

然后重啟msyql

service mysql restart

在另外一臺Ubuntu中進行連接測試

2020010811402310.png

如果依然連不上,可能原因:

網絡不通

通過 ping xxx.xxx.xx.xxx可以發現網絡是否正常

2)查看數據庫是否配置了bind_address參數

本地登錄數據庫查看my.cnf文件和數據庫當前參數show variables like ‘bind_address';

如果設置了bind_address=127.0.0.1 那么只能本地登錄

3)查看數據庫是否設置了skip_networking參數

如果設置了該參數,那么只能本地登錄mysql數據庫

4)端口指定是否正確

4. 刪除賬戶

語法1:使用root登錄

drop user '用戶名'@'主機';

例:

drop user 'laowang'@'%';

語法2:使用root登錄,刪除mysql數據庫的user表中數據

delete from user where user='用戶名';

例:

delete from user where user='laowang';

-- 操作結束之后需要刷新權限

flush privileges

推薦使用語法1刪除用戶, 如果使用語法1刪除失敗,采用語法2方式

3. 忘記 root 賬戶密碼怎么辦 !!

一般也輪不到我們來管理 root 賬戶,所以別瞎賣白粉的心了

忘記mysql root用戶密碼的解決辦法(skip-grant-tables):

skip-grant-tables

顧名思義,數據庫啟動的時候 跳躍權限表的限制,不用驗證密碼,直接登錄。

注意:

這種情況只有在忘記root密碼 不得已重啟數據庫的情況下使用的。現網環境慎用,需要重啟數據庫,并且安全性也比較難以保證。

1.修改配置參數

/etc/my.cnf

[mysqld] 下面加上:

skip-grant-tables配置項。

2.重啟mysql

使得參數生效:

service mysqld restart

3.注意事項

此時所有用戶登錄當前數據庫都是免密碼的,所以此時數據庫的安全性是非常低的。

4.修改密碼

具體的辦法:

https://www.jb51.net/article/169143.htm

5.去掉參數

a.密碼修改好了之后再將配置文件中 skip-grant-tables去掉

b.再次重啟數據庫。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

本文標題: Mysql賬戶管理原理與實現方法詳解

本文地址: http://www.cppcns.com/shujuku/mysql/297908.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533087.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533087.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533087.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

宏脈系統怎么改服務器地址,宏脈系統使用手冊大全.doc

WORD資料下載可編輯專業資料分享目錄TOC \o "1-3" \h \u HYPERLINK \l _Toc16722 第一章 通用功能鍵說明 PAGEREF _Toc16722 4HYPERLINK \l _Toc15100 1.1功能鍵的使用說明 PAGEREF _Toc15100 4HYPERLINK \l _Toc5198 1.2 打印設置 PAGEREF _Toc5198 8HYPERLINK \l _…

navicat for mysql 用戶_Navicat for MySQL 怎么/怎么添加管理用戶?Navicat for MySQL 添加管理用戶教程_37游游網...

【37游游攻略】為了保證數據庫的安全,對操作用戶分級授權是非常有必要的,Navicat for MySQL 給我們提供了一個非常強悍又非常便捷的用戶管理系統。點擊位于連接右側的用戶命令,隨之彈出管理用戶的界面,Navicat for MySQL 系統默認…

ajax實現向上正在加載,向上滾動或者向下滾動分頁異步加載數據(Ajax + lazyload)

/****desc : 分頁異步獲取列表數據,頁面向上滾動時候加載前面頁碼,向下滾動時加載后面頁碼ajaxdata_url ajax異步的URL 如data.phppage_val_name ajax異步的URL中的頁碼參數名 如pagenopage_no 初始加載頁碼,默認1 [如2,則與前面兩參數結合為…

js如何上傳大文件到服務器,js將文件上傳到遠程服務器

js將文件上傳到遠程服務器 內容精選換一換將文件上傳至Windows云服務器一般會采用MSTSC遠程桌面連接的方式。本節為您介紹本地Windows計算機通過遠程桌面連接,上傳文件至Windows云服務器的操作方法。Windows云服務器可以訪問公網。在本地Windows計算機上&#xff0c…

centos odbc mysql_Centos下安裝并配置ODBC連接MySQL 【轉】

找到一篇英文的關于Linux下ODBC的安裝和配置,在此根據自己的需要截取部分記錄一下。安裝并配置ODBCODBC連接器是一個數據庫抽象層,它可以讓Asterisk與廣泛的數據庫進行通信,而無需開發人員為Asterisk需要的每一個數據庫創建一個單獨的數據庫連…

增強服務器安全性能,加強Linux服務器安全的20項建議

很多人都說 Linux 在默認配置下很安全,我在一定程度上同意這個說法(很值得商榷的話題)。不過 Linux 內置的安全模型和工具做得確實很到位,用戶只需進行簡單的調整和自定義就可以加強 Linux 服務器安全。與惡意用戶做斗爭對于所有 Linux 系統管理員來說都…

mysql禁用歷史命令_如何禁止mysql記錄歷史命令

如何禁止mysql記錄歷史命令?在執行 SQL命令時,mysql會將歷史命令記錄到~/.mysql_history文件中,因此我們用上下鍵就可以翻閱歷史命令了。也許某些特殊需要我們可能需要不讓它記錄這些歷史命令,我們可以這樣作:[rootTes…

陰陽師師徒系統不同服務器,陰陽師體服師徒系統未收錄改為隨機SSR

昨天下午,受到很多爭議的體服“師徒系統”更新啦!新版的“師徒系統”修改了徒弟的條件,總的來說能剔除壓級大佬,并且之前獎勵未收錄SSR降低為隨機SSR式神,難怪很多陰陽師都說:“大快人心!”的確…

Mysql union聯合查詢_Mysql聯合查詢union和union all的使用介紹

一、UNION和UNION ALL的作用和語法UNION 用于合并兩個或多個 SELECT 語句的結果集,并消去表中任何重復行。UNION 內部的 SELECT 語句必須擁有相同數量的列,列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同.SQL UNION…

ios 查看同文件名_實戰恢復cisco 2950交換機的IOS

本來想用兩臺思科交換機做實驗的,可是通過console口進入其中一臺交換機后卻發現這個臺交換機的IOS文件丟失了。本來正常進入交換機后應該是首先進入到用戶模式的,而且提示符應該是“>”,而現在提示符卻成了“:”,如…

repositoryitemlookupedit根據每行的id綁定數據_一種根據數據庫自增ID生成唯一ID的解決方案...

在我們的開發過程中,經常會遇到ID生成的問題,那么這里就介紹一種解決方案,注意這里只適合混淆ID規則,也就是說生成的ID沒有任何規則,不適用于訂單ID。一般有序自增主鍵的ID,極易被爬蟲抓取數據,…

bootstracp實現樹形列表_Java實現一致性哈希算法,并搭建環境測試其負載均衡特性...

實現負載均衡是后端領域一個重要的話題,一致性哈希算法是實現服務器負載均衡的方法之一,你很可能已在一些遠程服務框架中使用過它。下面我們嘗試一下自己實現一致性哈希算法。一. 簡述一致性哈希算法這里不詳細介紹一致性哈希算法的起源了,網…

c# mysql數據庫查詢語句_C# mysql 查詢

展開全部|mysql> select * from test_book1;-------------------------------------------------|e68a84e8a2ad3231313335323631343130323136353331333335303534 id | name | data |-------------------------------------------------| …

系統分析師和系統架構設計師難度比較_系統架構設計師,馬上開課了!

一年只考一次的系統架構設計師7月7日通關指南開課系統架構設計師考試,是2009年11月計算機資格考試新增專業,這個級別屬于高級資格考試。與該考試同級別的還有系統分析師、信息系統項目管理師、系統規劃與管理師以及網絡規劃設計師。系統架構設計師每年考…

運維人員mysql如何訪問_mysql 運維常見操作

MySQL密碼的恢復方法之一1.首先確認服務器出于安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出于沒有密碼保護的 狀態下,其他的用戶也可以任意地登錄和修改MySQL的信…

mocha 測試 mysql_node項目mocha自動化測試的疑問

測試框架:mocha數據庫:mysql和mongodb疑問1. 如何控制多個測試用例的運行順序?用例寫多了,A用例把數據變成了狀態1,有些后面的用例基于這個狀態1的數據進行查詢判斷,才能使得后面的用例正常運行&#xff0c…

pythonhelloworld實例_Python基于Tkinter的HelloWorld入門實例

本文實例講述了Python基于Tkinter的HelloWorld入門實例。分享給大家供大家參考。具體分析如下:初學Python,打算做幾個Tkinter的應用來提高。剛學的HelloWorld,秀一下。我用Python3.2的,Windows版本的。源代碼如下: #導…

tensorflow提取mel譜特征_【腦電信號分類】腦電信號提取PSD功率譜密度特征

點擊上面"腦機接口社區"關注我們更多技術干貨第一時間送達本文是由CSDN用戶[frostime]授權分享。主要介紹了腦電信號提取PSD功率譜密度特征,包括:功率譜密度理論基礎、matlab中PSD函數的使用介紹以及實驗示例。感謝 frostime!1. 序…

mysql用戶可以localhost登陸_【單選題】登陸MySQL服務器,默認的用戶名為 A. user B. pwd C. root D. localhost...

功能清利濕熱、利膽退黃的藥物是A、茵陳蒿B、豬苓C、澤瀉D、滑石E、關木通舌尖上對酸味特別敏感的部位是_____。EDI的中文名稱是什么?什么維生素能促進血液的凝固?當輸油噴射泵故障時,Ⅱ組油箱是如何向Ⅲ組油箱供油的?A.通過溢油口…

從mysql中取出代理ip_GitHub - lican09/IPProxyTool: 抓取大量免費代理 ip,提取有效 ip 使用...

IPProxyTool使用 scrapy 爬蟲抓取代理網站,獲取大量的免費代理 ip。過濾出所有可用的 ip,存入數據庫以備使用。可以訪問我的個人站點,查看我的更多有趣項目 awolfly9個人項目歡迎加微信吐槽如果在使用中有任何疑問,或者項目中有任…