Mysql中新建用戶,設置密碼




Mysql中新建用戶,設置密碼

新建用戶

  • step 1.建立用戶:
    CREATE USER 'aaa'@'%' IDENTIFIED BY '123456';表示建立新的用戶,名爲aaa,新用戶密碼爲123456,'%'表示容許遠程登錄可是不容許本機登陸
    CREATE USER 'bbb'@'%' IDENTIFED BY '123456';//表示新建立的用戶,名爲bbb,這個用戶密碼爲123456,能夠從其餘電腦遠程登錄mysql所在服務器
    CREATE USER 'ccc'@'%';//表示新建立的用戶ccc,沒有密碼,能夠從其餘電腦遠程登錄mysql服務器mysql

  • step 2.受權用戶:GRANT ALL PRIVILEGES ON appmetadataDB.* TO 'aaa'@'%';表示將數據庫appmetadatadb下的全部表受權給用戶aaa。這樣用戶名aaa就能遠程訪問到這個數據庫(appmetadatadb)下的全部表。寫入user表,可是並無及時寫入權限表(grant table)。sql

  • step 3.刷新權限表:flush privileges執行這個命令的緣由是,須要將新加入的用戶寫入到權限表中,即更新grant table
  • step 4.查看以下
 
 
 
  
  
           
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
mysql> select host,user,password from mysql.user; +-----------+--------------+-------------------------------------------+ | host | user | password | +-----------+--------------+-------------------------------------------+ | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | % | aaa | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+--------------+-------------------------------------------+ 10 rows in set (0.02 sec)

這裏的mysql.user是一個系統表,任何mysql數據庫系統都會存在。
- 檢測以下
若是在appmetadatadb數據庫所在的系統上登陸用戶aaa會報錯。錯誤如右:ERROR 1045 (28000): Access denied for user 'aaa'@'localhost' (using password: YES)。可是將相同的代碼放到另外一臺主機上登陸,卻能夠實現登陸。
這個教訓必定要記住:就是建立用戶時,指定的%是指除了數據庫所在主機外的全部主機均可以登陸。好比說,下面這個是用bbb這個用戶,在虛擬機上遠程訪問物理機上的數據庫,可是在訪問的時候,須要在添加-h [數據庫所在主機的IP]字段。數據庫

 
 
 
  
  
           
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
[root@littlelawson sbin]# mysql -h 192.168.211.2 -u bbb -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 741 Server version: 5.6.37 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2.修改密碼

修改用戶密碼,方法有不少,這裏提供其中的兩種:
- set password for [userName]@localhost = password('[NewPassword]'),其中[]中的內容是可變字段。
- update mysql.user set password=password('123') where User="littlelawson" and Host="%";服務器

3.刪除用戶

  • 命令:drop user [userName]

4.收回權限

5.其它

  • 使用mysql的時候無論輸入什麼帳戶,均可以登陸,可是沒法查看其它用戶的表【由於沒有權限】。
 
 
 
  
  
           
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
C:\Users\enmonster>mysql -u wahaha -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20 Server version: 5.6.37 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select user(); +------------------+ | user() | +------------------+ | wahaha@localhost | +------------------+ 1 row in set (0.00 sec)


  • mysql -u root -p命令的意思是:使用帳戶root登陸,登陸密碼在後面輸入。
  • mysql普通用戶沒法直接經過create database [Database Name]建立數據庫,會報錯(Access denied for user 'littlelawson'@'localhost' to database 'testfd')。必須在root用戶下先建立個數據庫再經過受權語句把該database的權限給普通用戶。受權語句爲:grant all on user.* to user@host identified by password
相關文章
相關標籤/搜索