mysql 添加用户、修改权限,修改登录权限ip

一、添加用户

新增用户会有两种方式的,一种是使用create命令,另一种是直接回使用grant 命令

1、create user 名字@登陆地址 identified by "密码";

2、grant select,update(权限) on 数据库名.表名 to 用户@登录地址 identified by '密码';

3、insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
  • 登陆地址host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  • password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
  • 在grant 中 privileges表示用户的操作权限,如SELECTINSERTUPDATE等,如果要授予所的权限则使用ALL
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

二、授权和取消授权

原本grant就是用来授权的,只是当找不到授权用户的时候会重新创建一个用户,这个时候就需要注意将密码 加上。

使用grant授权实质是在mysql数据库的user表中增加一列,收回权限实质是从表中删除一列。所以授权也可以替换为删除表数据来代替,授权收权实质是操作mysql的user表。查看mysql.user表的结构:(windows与linux不同的是password列名改为authentication_string)

1、grant privileges on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';

2、grant select,insert on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';

3、grant all on *.* to '用户名'@'登录地址' identified by '密码';

4、grant all on 数据库名.* to '用户名'@'登录地址' identified by '密码';

--让用户 拥有授权 权限
5、grant privilege on  数据库名.* to '用户名'@'登录地址' with grant option;

--取消授权
6、revoke all on *.* from '用户名'@'登录地址';

三、查看用户信息

当然有查看全部的用户信息和单个的用户信息

1、select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;

2、select * from mysql.user where user='用户名';

3、show grants for '用户名'@'登录地址(%表示远程登录)';
--查看当前用户的权限
4、show grants; 

--查看用户表的结构
5、show mysql.user

四、修改用户和删除用户

--修改用户密码
1、set password for 'username'@'host' = password('newpassword');

--当前用户修改自己密码
2、set password = passw ("newpassword");

--使用update 更新用户
3、update user set password=password('123') where user='root' and host='localhost'; 
   flush privileges; 

--删除用户 
4、delete from mysql.user where user='root' and host='%';
   flush privileges;

五、有关远程登录mysql的问题

我们会发现其实数据库是分为本地的和远程的,本地的数据库即为在本地服务器安装的例如安装的mysql,sql Server等,远程的当然是部署在远程服务器上的。

当给创建用户账号的时候,如果create user 用户@登陆地址 identified by "密码"; 登录地址指定是host,或者某个地址就是表示该用户在局域网或互联网中以IP方式访问了。但是这种情况有可能在其他服务器登不上,这时候就需要登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"。

--先选择mysql数据库的user表
1、use mysql;
--再修改登录的ip 
2、update user set host = '%' where user = '用户名';

当然你可以选择用授权的方式来给需要的用户从任何主机连接到mysql服务器:

-- 可以从任何地方登录数据库
1、grant all privilege on *.* to '用户'@'%' identified by '密码' with grant option;
2、flush privilege;

--允许用户从ip为192.168.1.1的主机连接到mysql服务器,并使用mypassword作为密码
3、grant all privilege on *.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
4、flush privilege;

--用户从ip为192.168.1.1的主机连接到mysql服务器的test数据库,并使用mypassword作为密码
5、grant all privilege on test.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
6、flush privilege;

还有修改mysql配置文件的方法即 bind-address= 127.0.0.1注释掉即可------>在my.ini中找到bind-address=0.0.0.0就是所有IP地址都能访问,也可以不要这个属性,具体情况我也没有尝试。

猜你喜欢

转载自blog.csdn.net/LCF_lxf_ldy/article/details/87721073
今日推荐