本文目錄一覽:
- 1、如何使用phpmyadmin管理mysql資料庫
- 2、MySQL 8.0.23 資料庫用戶管理、許可權分配和遠程連接
- 3、為什麼mysql需要用戶管理
- 4、怎麼在mysql中 配置canal資料庫管理用戶,配置相應許可權
- 5、mysql怎樣對用戶做安全性管理
如何使用phpmyadmin管理mysql資料庫
1、新建資料庫:
進入phpmyadmin管理界面以後,找到如下文字「創建一個新的資料庫」,然後在下面填上要新建的資料庫的名稱,在後面的下拉列表中選擇資料庫的編碼,如「utf8_general_ci」,點擊「創建」按鈕,這樣就新建了一個資料庫。
2、新建此資料庫的對應帳戶
在phpmyadmin管理界面點擊「許可權」,打開鏈接,點擊「添加新用戶」,在打開的頁面中會看到「登入信息」,輸入用戶名、主機(一般為本地:localhost)、密碼後,因為我們現在是要給單個用戶配置單個資料庫的許可權,所以我們在這裡不選擇「全局許可權」,然後點擊最下面的「執行」按鈕,這樣就新建了一個用戶名。
3、為新建的用戶添加此資料庫許可權
添加完用戶以後,管理界面的上方會提示「您已添加了一個新用戶」,我們現在就給新建的用戶添加許可權,在下面找到「按資料庫指定許可權」,然後點擊「在下列資料庫添加許可權」後面的下拉列表,選擇資料庫,選擇數據下面的全部,然後選擇結構除了最下面三個以外的複選框,其他一律不選,然後點擊「執行」按鈕,這樣就配置好了這個用戶完全管理這個資料庫的許可權了。
註:
1、因為我們只是要給這個用戶管理這個資料庫的全部許可權,但是沒有其他資料庫的管理許可權,所以在配置許可權的時候一定要注意。
2、INFORMATION_SCHEMA是信息資料庫,其中保存著關於MySQL伺服器所維護的所有其他資料庫的信息。假如不想在phpMyAdmin中顯示的話只需要設置在config.inc.php(有的是config.default.php)中設置這樣一句:$cfg[‘Servers’][$i][‘hide_db’]
= 『information_schema’;
此外,如果在創新用戶時,選擇「用戶資料庫」中的「給以 用戶名_ 開頭的資料庫 (username\_%)
授予所有許可權」選項,新建的用戶就可以自己創建以「username_」開頭的資料庫。
MySQL 8.0.23 資料庫用戶管理、許可權分配和遠程連接
這個目前應該是MySQL比較新的版本了,教程僅在Linux平台上驗證通過,其他平台請自證。提供步驟和思路方便快速分析和定位問題。
根據需求在完成理解前面步驟後,接下來需要配置允許遠程連接(生產環境請通過ssh隧道方式,且mysql配置文件bind-address為特定ip或本機)
最後,感謝您的閱讀,由於時間倉促,文章內容難免有不妥之處,歡迎交流和指正~~
Mark一下 惟月慎行 再也不會迷路了^_^!
為什麼mysql需要用戶管理
MySQL 是一個多用戶資料庫,具有功能強大的訪問控制系統,可以為不同用戶指定不同許可權。為了實際項目的需要,可以創建擁有不同許可權的普通用戶。
怎麼在mysql中 配置canal資料庫管理用戶,配置相應許可權
在mysql中 配置canal資料庫管理用戶,配置相應許可權
# mysql -uroot -proot
CREATE USER canal IDENTIFIED BY ‘canal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal’@’%’ IDENTIFIED BY ‘canal’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
安裝canal
本文使用的是:canal.deployer-1.0.22.tar.gz
# mkdir canal
# tar -zxvf canal.deployer-1.0.22.tar.gz -C canal
修改配置信息:
# vim conf/canal.properties
canal.id= 1
canal.ip=
canal.port= 11111
canal.zkServers=192.168.10.1:2181
# vim conf/example/instance.properties
## mysql serverId
canal.instance.mysql.slaveId = 1234
# position info, 需要改成自己的資料庫信息
canal.instance.master.address = 127.0.0.1:3306
# username/password,需要改成自己的資料庫信息
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
mysql怎樣對用戶做安全性管理
你可以這樣操作。
如果MYSQL客戶端和伺服器端的連接需要跨越並通過不可信任的網路,那麼需要使用ssh隧道來加密該連接的通信。
使用set password語句來修改用戶的密碼,先「mysql -u root」登陸資料庫系統,然後「mysql update mysql.user set password=password(『newpwd』)」,最後執行「flush privileges」就可以了。
Mysql需要提防的攻擊有,防偷聽、篡改、回放、拒絕服務等,不涉及可用性和容錯方面。對所有的連接、查詢、其他操作使用基於acl即訪問控制列表的安全措施來完成。也有一些對ssl連接的支持。
設置除了root用戶外的其他任何用戶不允許訪問mysql主資料庫中的user表;加密後存放在user表中的加密後的用戶密碼一旦泄露,其他人可以隨意用該用戶名/密碼相應的資料庫;
使用grant和revoke語句來進行用戶訪問控制的工作;
不要使用明文密碼,而是使用md5()和sha1()等單向的哈系函數來設置密碼;
不要選用字典中的字來做密碼;
採用防火牆可以去掉50%的外部危險,讓資料庫系統躲在防火牆後面工作,或放置在dmz區域中;
從網際網路上用nmap來掃描3306埠,也可用telnet server_host 3306的方法測試,不允許從非信任網路中訪問資料庫伺服器的3306號tcp埠,需要在防火牆或路由器上做設定;
為了防止被惡意傳入非法參數,例如where id=234,別人卻輸入where id=234 or 1=1導致全部顯示,所以在web的表單中使用」或」”來用字元串,在動態url中加入%22代表雙引號、%23代表井號、%27代表單引號;傳遞未檢查過的值給mysql資料庫是非常危險的;
在傳遞數據給mysql時檢查一下大小;
應用程序需要連接到資料庫應該使用一般的用戶帳號,開放少數必要的許可權給該用戶;
在各編程介面(c c++ php perl java jdbc等)中使用特定『逃脫字元』函數;在網際網路上使用mysql資料庫時一定少用傳輸明文的數據,而用ssl和ssh的加密方式數據來傳輸;
學會使用tcpdump和strings工具來查看傳輸數據的安全性,例如tcpdump -l -i eth0 -w -src or dst port 3306 strings。以普通用戶來啟動mysql資料庫服務;
不使用到表的聯結符號,選用的參數 –skip-symbolic-links;
確信在mysql目錄中只有啟動資料庫服務的用戶才可以對文件有讀和寫的許可權;
不許將process或super許可權付給非管理用戶,該mysqladmin processlist可以列舉出當前執行的查詢文本;super許可權可用於切斷客戶端連接、改變伺服器運行參數狀態、控制拷貝複製資料庫的伺服器;
file許可權不付給管理員以外的用戶,防止出現load data 『/etc/passwd』到表中再用select 顯示出來的問題;
如果不相信dns服務公司的服務,可以在主機名稱允許表中只設置ip數字地址;
使用max_user_connections變數來使mysqld服務進程,對一個指定帳戶限定連接數;
grant語句也支持資源控制選項;
啟動mysqld服務進程的安全選項開關,–local-infile=0或1 若是0則客戶端程序就無法使用local load data了,賦權的一個例子grant insert(user) on mysql.user to 『user_name』@’host_name』;若使用–skip-grant-tables系統將對任何用戶的訪問不做任何訪問控制,但可以用 mysqladmin flush-privileges或mysqladmin reload來開啟訪問控制;默認情況是show databases語句對所有用戶開放,可以用–skip-show-databases來關閉掉。
碰到error 1045(28000) access denied for user 『root』@’localhost』 (using password:no)錯誤時,你需要重新設置密碼,具體方法是:先用–skip-grant-tables參數啟動mysqld,然後執行 mysql -u root mysql,mysqlupdate user set password=password(『newpassword』) where user=』root』;mysqlflush privileges;,最後重新啟動mysql就可以了。
原創文章,作者:FBGL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137849.html