`

MYSQL create user

阅读更多
命令方式的.注意每行后边都跟个 ; 表示一个命令语句结束.
格式:grant select on database.* to user@host identified by "password"

例1、增加一个用户report密码为report,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to report@"%" Identified by "report";

但例1增加的用户是十分危险的,你想如某个人知道report的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户report密码为report,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to report@localhost identified by "report";
如果你不想report有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";

详细:
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:

·         其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。


设置账户密码

可以用mysqladmin命令在命令行指定密码:
shell> mysqladmin -u user_name -h host_name password "newpwd"
该命令重设密码的账户为user表内匹配User列的user_name和Host列你发起连接的客户端的记录。

为账户赋予密码的另一种方法是执行SET PASSWORD语句:

mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
只有root等可以更新mysql数据库的用户可以更改其它用户的密码。如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:

mysql> SET PASSWORD = PASSWORD('biscuit');
你还可以在全局级别使用GRANT USAGE语句(在*.*)来指定某个账户的密码而不影响账户当前的权限:

mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
一般情况下最好使用上述方法来指定密码,你还可以直接修改user表:

·         要想在创建新账户时建立密码,在Password列提供一个值:

·                shell> mysql -u root mysql
·                mysql> INSERT INTO user (Host,User,Password)
·                     -> VALUES('%','jeffrey',PASSWORD('biscuit'));
·                mysql> FLUSH PRIVILEGES;
·                
·         要想更改已有账户的密码,使用UPDATE来设置Password列值:

·                shell> mysql -u root mysql
·                 mysql> UPDATE user SET Password = PASSWORD('bagel')
·                       -> WHERE Host = '%' AND User = 'francis';
·                mysql> FLUSH PRIVILEGES;
当你使用SET PASSWORD、INSERT或UPDATE指定账户的密码时,必须用PASSWORD()函数对它进行加密。(唯一的特例是如果密码为空,你不需要使用PASSWORD())。需要使用PASSWORD()是因为user表以加密方式保存密码,而不是明文。如果你忘记了,你可能会象这样设置密码:

shell> mysql -u root mysql
mysql> INSERT INTO user (Host,User,Password)
    -> VALUES('%','jeffrey','biscuit');
mysql> FLUSH PRIVILEGES;

结果是密码'biscuit'保存到user表后没有加密。当jeffrey使用该密码连接服务器时,值被加密并同保存在user表中的进行比较。但是,保存的值为字符串'biscuit',因此比较将失败,服务器拒绝连接:

shell> mysql -u jeffrey -pbiscuit test
Access denied
如果你使用GRANT ... IDENTIFIED BY语句或mysqladmin password命令设置密码,它们均会加密密码。在这种情况下,不需要使用 PASSWORD()函数。
分享到:
评论

相关推荐

    MySQL Create Database 创建数据库.docx

    $sql = 'CREATE TABLE user ( uid mediumint(8), username varchar(20), password char(32), email varchar(40), regdate int(10) )'; if (!mysql_query($sql, $conn)) { echo '创建数据表失败:' . mysql_...

    MySql\Mysql创建用户和表.docx

    本文详细介绍了 Mysql 创建用户和表的方法,包括使用 CREATE USER 语句、GRANT 语句和直接向 mysql.user 表插入记录三种方法,并提供了实例和详细的语法解释,以便读者更好地理解和掌握 Mysql 创建用户和表的知识。

    Mysql中mysql.user用户表详解

    MySQL中的`mysql.user`表是管理系统用户权限的核心组件,它定义了用户可以从哪些主机登录以及他们拥有的操作权限。MySQL作为一个多用户系统,通过权限控制确保数据的安全性,避免未授权的访问。在这个表中,我们可以...

    linux新建mysql (user).docx

    1. 在MySQL客户端中,使用`CREATE USER 'new_username'@'localhost' IDENTIFIED BY 'new_password';`命令创建一个新用户,替换`new_username`和`new_password`为实际的用户名和密码。 2. 授予用户相应的权限,例如`...

    Mysql User表权限字段说明全介绍

    26. Create_user_priv:创建新MySQL账户的权限,如CREATE USER命令。 27. Event_priv:自MySQL 5.1.6起,用户可以创建、修改和删除事件调度。 28. Trigger_priv:自MySQL 5.1.6起,用户可以创建和删除触发器,影响...

    MySQL中创建用户及授权

    要使用 CREATE USER,您必须拥有 mysql 数据库的全局 CREATE USER 权限,或拥有 INSERT 权限。对于每个账户,CREATE USER 会在没有权限的 mysql.user 表中创建一个新记录。如果账户已经存在,则出现错误。 使用自选...

    mysql5.7arm64.zip麒麟arm64架构下的deb安装包

    mysql5.7arm64.zip mysql5.7在麒麟...mysql> create user root identified by 'youpassword'; mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; mysql> flush privileges;

    mysql常用命令集锦--初级DBA

    mysql> delete from mysql.user where user="test"; mysql> flush privileges; 四、操作数据库 1. 显示数据库列表 mysql> show databases; 2. 显示库中的数据表 mysql> use 库名; mysql> show tables; 3. 显示...

    MYSQL权限不够解决办法

    mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpass'; ``` 2. **授权** ```sql mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost'; ``` 3. **刷新权限** ```sql mysql> ...

    MySql用户创建、授权以及删除

    创建MySQL用户主要是使用`CREATE USER`命令。基本语法如下: ```sql CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ``` 在示例中,`username`是你想要创建的用户名,`host`定义了该用户可以从哪个主机...

    MySQL 超级入门教程

    - `CREATE USER`(允许使用`CREATE USER`、`DROP USER`、`RENAME USER`和`REVOKE ALL PRIVILEGES`) - `CREATE VIEW`(允许使用`CREATE VIEW`) 以上内容涵盖了MySQL基础入门所需的关键知识点,包括数据库的概念...

    mysql的常见错误解决

    mysql> create database haha; ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'haha' ``` 出现这种错误是因为在 MySQL 的 `user` 表中存在用户名为空的账户,虽然登陆时用的是 root,...

    shell创建mysql数据库

    - 创建用户,如:`mysql -u root -p -e "CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';"`。 - 授予权限,例如:`mysql -u root -p -e "GRANT ALL PRIVILEGES ON dbname.* TO 'newuser'@'localhost...

    数据库MySQL入门.pdf

    2. 创建用户:`CREATE USER 'demo_c'@'localhost' IDENTIFIED BY '123456';` 3. 授权:`GRANT ALL PRIVILEGES ON ranzhi.* TO demo_c@'localhost' IDENTIFIED BY '123456';` 4. 查看当前登录用户名:`mysql> select ...

    mysql复制别人的

     mysql> update user set password=password("xueok654123") where user='root';  mysql> flush privileges //刷新数据库  mysql>use dbname; 打开数据库:  mysql>show databases; 显示所有数据库  mysql>show...

    mysql面试题目 mysql面试题目

    可以使用 update 语句来设置或修改密码,例如:update mysql.user set authentication_string = password('NEW-PASSWD') where user='root'; update user set authentication_string='' where user='root';。 4. ...

    MySQL 自定义函数CREATE FUNCTION示例

    在MySQL中,自定义函数(User Defined Function, UDF)允许用户根据特定需求扩展数据库的功能。`CREATE FUNCTION`语句是创建自定义函数的关键,它允许我们定义自己的SQL函数,以便在查询中重用和执行自定义逻辑。...

    linux下非root权限的mysql安装

    create user xute identified by '123456'; grant all privileges on *.* to xute@'localhost' identified by '123456'; flush privileges; ``` 删除用户和收回权限 如果需要删除用户和收回权限,可以使用以下 SQL ...

    MySql MySql使用方法 Mysql例子

    - `JOIN`:连接两个或多个表,例如`SELECT users.name, orders.order_date FROM users JOIN orders ON users.id = orders.user_id;`显示用户及其订单日期。 - `GROUP BY`和`HAVING`:对数据进行分组并筛选,常用于...

Global site tag (gtag.js) - Google Analytics