`

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数据库:用户的管理.pptx

    要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限或INSERT权限。如果账户已经存在,则出现错误。 ;【例6.3.1】添加两个新的用户,king的密码为queen,palo的密码为530415 CREATE USER 'king'@'...

    JIRA+MYSQL配置

    create user jirauser identified by ‘jira’; grant all privileges on *.* to ‘jirauser’@'%’ identified by ‘jira’ with grant option; grant all privileges on *.* to ‘jirauser’@'localhost’ ...

    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入门.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...

    .net framework 4.0 for windows(mysql)&wic_x86_chs&mysql用户基本操作

    命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机...

    linux下非root权限的mysql安装

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

    mysql8.0 X64 安装文件和手动安装脚本

    mysql8.0 X64 安装文件和手动...mysql> CREATE USER 'sa'@'%' IDENTIFIED BY 'csbt7.ydhl12s'; Query OK, 0 rows affected (0.19 sec) mysql> GRANT ALL ON *.* TO 'sa'@'%'; Query OK, 0 rows affected (0.10 sec)

    mysql镜像备份mysql镜像备份

    mysql>create table new (name char(20),phone char(20)); mysql>insert into new ('lhj','60549391'); 打开从库,察看: /opt/mysql/bin/mysql -u root -p mysql>show database; mysql sampdb test mysql>use ...

    MYSQL

    7.29 注释句法 7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法 7.31 MySQL对保留字很挑剔吗? 8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 ...

    mysql命令到底多长符合要求

    mysql>create database zhouzdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 6)授予用户通过外网IP对于该数据库的全部权限 mysql>grant all privileges on `zhouzdb`.* to 'zhouz'@'%' identified by '1234';

    快速搞定Mysql8.0主从复制

    mysql> CREATE USER 'repl'@'192.168.210.177' IDENTIFIED BY '123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.210.177'; 3. 配置从服务器 在从服务器上,需要配置从服务器,以便从服务器...

    centos7安装MySQL8.0.25.doc

    `create user 'dong'@'localhost' identified by '314159poi';` 授予权限: `grant all on *.* to 'dong'@'localhost';` 刷新数据库: `flush privileges;` 修改新创建用户可以远程连接: `update mysql.user ...

    C API连接mysql

    create table User ( id int(11) not null auto_increment, name varchar(20), age int(11), primary key (id) ); #插入一些数据 insert into user values (NULL, 'name1', 11); insert into user values (NULL,...

    symfony博客

    CREATE USER 'symfony'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON blog.* TO 'symfony'@'localhost'; FLUSH PRIVILEGES; -创建数据库,表和伪造数据 使用user =“ symfony” password =“ ...

    MySQL中文参考手册.chm

    7.27 CREATE INDEX (创建索引)句法 7.28 DROP INDEX (抛弃索引)句法 7.29 注释句法 7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法 7.31 MySQL对保留字很挑剔吗?...

    IDEA+Spring Boot+Mybatis+MySQL整合

    准备工作 IntelliJ IDEA旗舰版2019.3.2 MySQL 8.0.19 创建一个表 ... create table user(id int,name varchar(20),gender varchar(1)); insert into user(id,name,gender) values(01,'张三','男');

    mysql 5.7数据库免安装版

    sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER #开启查询缓存 explicit_defaults_for_timestamp=true skip-grant-tables (3)生成data目录,DOS下mysqld --initialize-insecure --user=mysql (4)Service ...

Global site tag (gtag.js) - Google Analytics