mysql資料庫的訪問控制

2021-06-26 18:38:44 字數 2001 閱讀 4619

環境:linux mysql 

當前使用者:root

1.預設訪問

mysql安裝完成之後,預設是沒有密碼的,可使用命令「mysql」進入資料庫,也可使用命令「mysql -uroot -p」登入,會提示輸入密碼,不用理會,直接enter即可。mysql安裝後,有3個資料庫mysql,test,

information_schema。

其中,mysql資料庫的user表記錄了當前使用者的許可權資訊。進入資料庫命令列後,使用「use mysql;select host,user,password from user」命令,可檢視user賬號資訊,如下所示:

預設情況下是沒有密碼的,而且可以以任何賬號空密碼登入,如「mysql -urr -p」,提示輸入密碼,直接跳過即可。

2.遠端訪問

預設情況下,資料庫只能本地訪問,是不支援遠端進行訪問的,但這明顯不能滿足專案的需要,專案中資料庫不一定與服務在同一臺機器上,所以需要對遠端訪問的資料庫開啟遠端訪問許可權:進入mysql命令列,使用「use db」選擇需要設定的資料庫(後續如果新增資料庫時,都需要執行grant,如果不想這麼麻煩的每新增乙個資料庫就執行一次,可以不選擇資料庫直接執行「grant all on *.* to 'root' identified by 'root1234'」,這對所有資料庫生效,不論是已經存在的還是將來要建立的),執行「grant all on * to 'root' identified by 'root1234'」,即root使用者(密碼為root1234)擁有對該資料庫處理的所有許可權,該命令執行完畢後,會在mysql資料庫user表中產生一條記錄,如下圖所示

host(主機的意思)為"%",表示所有遠端訪問的主機。如果在執行grant命令前,mysql資料user表中已經存在host為%,user為root的記錄,則對其進行修改,否則新增一條記錄。遠端訪問時,都使用圖中最後一條記錄來驗證訪問使用者是否合法,不影響本地無密碼訪問。也可指定使用者名稱與ip,如grant all on * to 'sel'@'10.10.10.79' identified by 'sel1234',則在user表中生成一條host為host為10.10.10.79,user為sel,密碼為sel1234的記錄。

3.密碼訪問

本地訪問時,為了安全性上的考慮也可設定密碼。密碼的設定提供2種方式:

1)登入mysql命令列,「use mysql」選中mysql預設資料庫,對其user表進行設定:

update user set password=password(「要設定的密碼」)where user = 「root"

password(「要設定的密碼」)是對密碼進行加密後儲存到資料庫(使用」update user set password=「要設定的密碼」where user = 「root" 「是不加密的,不要使用)。這種方式設定後不會立即生效,需要重啟資料庫之後才能生效。

2)mysql密碼為空時,可使用mysqladmin -uroot password 『新密碼』來修改密碼;mysql密碼不為空時,可使用mysqladmin -uroot -p password 『新密碼』 來修改密碼,這種方式修改密碼後立即生效。

密碼修改後,登入時直接輸入"mysql"會報錯,需使用命令「mysql -uroot -p」,提示輸入密碼,正確輸入密碼即可。

注: 如果對乙個資料庫執行了「grant all on * to 'root'@xx identified by 'root1234'」(產生ip為xx,user為root的記錄),同時也對所有資料庫執行了「grant all on *.* to 'root' identified by 'root1234'」(產生ip為%,user為root的記錄),在這兩種並存的情況下,以最嚴格的限制為主,即「產生ip為xx,user為root的記錄」生效,所以後續新增資料庫時,需要繼續執行grant命令,才能被外界訪問。

Oracle資料庫訪問控制

1.建立使用者 建立使用者時必須用系統管理員身份登入,以hr使用者為例 輸入使用者名稱 hr as sysdba 輸入口令 1234 建立使用者名為test的使用者,密碼為1234 create user test identified by 1234 2.更改使用者密碼 更改密碼時可以用資料庫管理...

mysql資料庫訪問

實現在不是本機的機器上訪問mysql資料庫有 1.開啟連線,關閉放火牆 2.建立乙個允許遠端連線的訪問使用者 系統預設的root使用者預設為遠端無法連線 格式 grant select on 資料庫.to 使用者名稱 登入主機 identified by 密碼 例1 增加乙個使用者test1密碼為a...

MySql資料庫的訪問

import pymysql 建立乙個connection 物件,代表了乙個資料庫連線 connection pymysql.connect host 資料庫ip位址 user mysql使用者名稱 passwd mysql使用者登入密碼 db 資料庫名 如果資料庫裡面的文字是utf8編碼的,cha...