MySQL命令行能否實現新建用戶呢?答案無疑是肯定的。而且在使用使用MySQL命令行新建用戶后,還可以為用戶授予權限。
我們提供的服務有:網站制作、成都網站建設、微信公眾號開發、網站優化、網站認證、新晃ssl等。為上千多家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的新晃網站制作公司
首先要聲明一下:一般情況下,修改MySQL密碼,授權,是需要有mysql里的root權限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同樣適用。
用戶:phplamp
用戶數據庫:phplampDB
1.MySQL命令行新建用戶
//登錄MYSQL
@mysql -u root -p
@密碼
//創建用戶
mysql insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
//刷新系統權限表
mysqlflush privileges;
這樣就創建了一個名為:phplamp 密碼為:1234 的用戶。
//退出后登錄一下
mysqlexit;
@mysql -u phplamp -p
@輸入密碼
mysql登錄成功
2.MySQL命令行為用戶授權
//登錄MYSQL(有ROOT權限)。我里我以ROOT身份登錄.
@mysql -u root -p
@密碼
//首先為用戶創建一個數據庫(phplampDB)
mysqlcreate database phplampDB;
//授權phplamp用戶擁有phplamp數據庫的所有權限
@grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //這里需要注意,如果發現找不到用戶,需要執行命令 flush privilieges;
//刷新系統權限表
mysqlflush privileges;
mysql其它操作
//如果想指定部分權限給一用戶,可以這樣來寫:
mysqlgrant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系統權限表。
mysqlflush privileges;
mysql grant 權限1,權限2,…權限n on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
權限1,權限2,…權限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限。
當權限1,權限2,…權限n被all privileges或者all代替,表示賦予用戶全部權限。
當數據庫名稱.表名稱被*.*代替,表示賦予用戶操作服務器上所有數據庫所有表的權限。
用戶地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用’%'表示從任何地址連接。
‘連接口令’不能為空,否則創建失敗。
例如:
mysqlgrant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對數據庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的權限,并設定口令為123。
mysqlgrant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對數據庫vtdc所有表進行所有操作的權限,并設定口令為123。
mysqlgrant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對所有數據庫的所有表進行所有操作的權限,并設定口令為123。
mysqlgrant all privileges on *.* to joe@localhost identified by ‘123′;
給本機用戶joe分配可對所有數據庫的所有表進行所有操作的權限,并設定口令為123。
在 MySQL 里面,grant 語句是用來給用戶賦權的。不知道你有沒有見過一些操作文檔里面提到,grant 之后要馬上跟著執行一個 flush privileges 命令,才能使賦權語句生效。
那么,grant 之后真的需要執行 flush privileges 嗎?如果沒有執行這個 flush 命令的話,賦權語句真的不能生效嗎?
接下來,我們介紹一下 grant 語句和 flush privileges 語句分別做了什么事情,然后再一起來分析這個問題。
為了便于說明,先創建一個用戶:
這條語句的邏輯是創建一個用戶’ua’@’%’,密碼是 pa。注意,在 MySQL 里面,用戶名 (user)+ 地址 (host) 才表示一個用戶,因此 ua@ip1 和 ua@ip2 代表的是兩個不同的用戶。這條命令做了兩個動作:
在 MySQL 中,用戶權限是有不同的范圍的。接下來,我們按照用戶權限范圍從大到小的順序依次說明。
1、創建新用戶
通過root用戶登錄之后創建
grant all privileges on *.* to testuser@localhost identified by "123456" ;//創建新用戶,用戶名為testuser,密碼為123456 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//設置用戶testuser,可以在本地訪問mysql
grant all privileges on *.* to testuser@"%" identified by "123456" ; //設置用戶testuser,可以在遠程訪問mysql
flush privileges ;//mysql 新設置用戶或更改密碼后需用flush privileges刷新MySQL的系統權限相關表,否則會出現拒絕訪問,還有一種方法,就是重新啟動mysql服務器,來使新設置生效
2、設置用戶訪問數據庫權限
grant all privileges on test_db.* to testuser@localhost identified by "123456" ;//設置用戶testuser,只能訪問數據庫test_db,其他數據庫均不能訪問 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//設置用戶testuser,可以訪問mysql上的所有數據庫 ;
grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" ;//設置用戶testuser,只能訪問數據庫test_db的表user_infor,數據庫中的其他表均不能訪問 ;
3、設置用戶操作權限
grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//設置用戶testuser,擁有所有的操作權限,也就是管理員 ;
grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//設置用戶testuser,只擁有【查詢】操作權限 ;
grant select,insert on *.* to testuser@localhost identified by "123456" ;//設置用戶testuser,只擁有【查詢\插入】操作權限 ;
grant select,insert,update,delete on *.* to testuser@localhost identified by "123456" ;//設置用戶testuser,只擁有【查詢\插入】操作權限 ;
REVOKE select,insert ON what FROM testuser//取消用戶testuser的【查詢\插入】操作權限 ;
方法/步驟
眾所周知,mysql里面有很多權限,不同權限可以使用不同功能,今天就教大家怎么獲取Mysql的root權限,也就是最高權限,可以做任何事情。
1.首先使用一個沒有權限的賬號鏈接mysql,成功之后執行:show databases;這時會發現沒有權限的用戶只能看到一個數據庫,mysql和test等數據庫是看不到的;
2.如果已經安裝了phpmyadmin,打開127.0.0.1/phpmyadmin,在菜單欄找到用戶,然后找到沒有權限的用戶,點擊編輯權限;
3.跳轉到設置頁面,找到全局權限,在全選checkbox打勾,點擊右下角的執行,完成后該用戶就獲得了mysql數據庫的所有權限;
4.再次用該賬號再次鏈接mysql,鏈接成功后執行:show databases;你會發現所有數據庫都會顯示出來,而且使用該賬號可以進行任意編輯;
6
5.也可以直接在cmd窗口命令行設置,設置權限的命令為:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
PS:用戶名部分根據自己的實際情況進行更改。
網頁名稱:mysql怎么獲得權限,mysql給用戶權限
標題鏈接:http://m.kartarina.com/article18/dseedgp.html
成都網站建設公司_創新互聯,為您提供定制網站、網頁設計公司、網站營銷、做網站、標簽優化、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯