mysql——账户管理——新建用户

dbName.tableName表示授予权限的具体库或表,常用的有以下几种选项:

  • .:授予该数据库服务器所有数据库的权限。
  • dbName.*:授予dbName数据库所有表的权限。
  • dbName.dbTable:授予数据库dbName中dbTable表的权限。

username@host表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:

  • localhost:只允许该用户在本地登录,不能远程登录。
  • %:允许在除本机之外的任何一台机器远程登录。
  • 192.168.52.32:具体的IP表示只允许该用户从特定IP登录。

password指定该用户登录时的面。

flush privileges表示刷新权限变更。

===============================================================================

新建普通用户——3种方法

mysql数据库下面的user表,存放各种用户和权限信息。

一、用create   user语句来新建普通用户

使用create   user语句来创建新用户时,必须要拥有create  user权限。

语法格式: create  user  user  [ identified  by  [ PASSWORD ] 'password' ] , user  [ identified  by  [ PASSWORD ] 'password' ]……

user:表示新建用户的账户,user由用户名(user)和主机名(host)构成;

identified  by:关键字用来设置用户的密码;

password:表示用户的密码;如果密码是一个普通的字符串,就不需要用PASSWORD关键字。

注意:create  user语句可以同时创建多个用户,新用户可以没有初始密码。

create user 'sww'@'localhost' identified by '123456';      /*创建一个用户*/

select * from user;

mysql -h localhost -P 3306 -u sww -p123456       /*DOS窗口中登录查看*/

drop user 'sww'@'localhost';            /*删除这个新建的用户*/

select * from user;

新建用户:

查询user表:

DOS窗口登录查看,是否创建正确:

删除新建的用户:

 

查询删除后的user表:

======================================================================================

======================================================================================

二、insert语句来新建用户

使用insert语句直接将用户信息添加到mysql.user表中。但是必须拥有对mysql.user表的insert权限。

语法格式:  insert   into  mysql.user ( host,user,password )  values ( 'hostname','username',PASSWOR('password') );

其中,PASSWORD()函数时用来给密码加密的。因为只设置了3个字段的值,那么其它字段的取值为其默认值。

如果这3个字段以外的某个字段没有默认值,这个语句将不能执行。需要将没有默认值的字段也设置值。

通常ssl_cipher,x509_issuer,x509_subject这3个字段没有默认值。因此必须为这3个字段设置初始值。

此时insert语句的格式如下:

insert into mysql.user( Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values ('hostname','username',PASSWORD('password'),'','','');

注意:mysql数据库下的user表中,ssl_cipher,x509_issuer,x509_subject这3个字段没有默认值。

          因此向user表中插入新记录时,一定要设置这3个字段的值,否则insert语句将不能执行。

          而且,password字段一定要使用PASSWORD()函数将其加密。

insert into mysql.user( Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values ('127.0.0.1','yuan',PASSWORD('123'),'','','')

flush privileges;           /*这个命令让mysql数据库中的user表,重新装载权限*/

select * from user;

drop user 'yuan'@'127.0.0.1';

mysql -h 127.0.0.1 -P 3306 -u yuan -p123

select * from user;

查询user表:

新建用户:

查询user表:

DOS窗口登录:

删除新建用户:

查看user表;

===============================================================

===============================================================

三、grant语句来新建普通用户

使用grant语句来创建新的用户。在创建用户时,可以为其用户授权。但是必须拥有grant权限。

这里只演示新建用户方法。

语法格式: 

                  grant   priv_type  on  database.table

                  to   user   [ identified  by  [ PASSWORD ] 'password' ] 

                  [, user  [ identified  by  [ PASSWORD ] 'password' ]……

priv_type:表示新用户的权限;

database.table:表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;

user:表示新建用户的账户,user由用户名(user)和主机名(host)构成;

identified  by:关键字用来设置用户的密码;

password:表示用户的密码;如果密码是一个普通的字符串,就不需要用PASSWORD关键字。

注意:PS:这里grant语句只是其中创建新用户的部分的参数,其它详细的后面介绍。

grant select on *.* to 'test5'@'localhost' identified by 'test5';

select * from user;

mysql -h localhost -P 3306 -u test5 -ptest5

drop user 'test5'@'localhost';

select * from user;

查看用户表:

新建用户:

查询新建用户之后的用户表:

DOS窗口登录验证:

删除新建用户:

再次查询用户表:

==============================================================

==============================================================

删除普通用户

方法一:使用drop  user语句来删除普通用户

使用drop  user语句来删除普通用户时,必须拥有drop   user权限。

语法格式:  drop   user   user [ ,user ]……

user:是需要删除的用户,由用户的用户名(user)和主机名(host)组成;

可以同时删除多个用户,之间用逗号隔开;

示例:  drop user 'test5'@'localhost';

-----------------------------------------------------------------------------------------------------------------------------

方法二:用delete语句来删除普通用户

可以使用delete语句直接将用户的信息从mysql.user表中删除。但是必须拥有对mysql.user表的delete权限。

语法格式:   delete  from  mysql.user   where  Host = 'hostname'  and  User = 'username';

                     然后执行 : flush privileges;                        让命令生效

Host和User都是mysql.user表的主键,因此两个字段的值才能唯一确定一条记录;

grant select on *.* to 'test5'@'localhost' identified by 'test5';

select * from user;

mysql -h localhost -P 3306 -u test5 -ptest5

                                                       /* drop user 'test5'@'localhost'; */

delete  from  mysql.user   where  Host = 'localhost'  and  User = 'test5';   /*效果一样*/

flush privileges; /*让命令生效*/ /*执行该命令,可以从mysql数据库中的user表中的数据重新加载权限*/
select * from user;

猜你喜欢

转载自www.cnblogs.com/xiaobaibailongma/p/12099137.html