MySQl创建用户和授权
权限管理
我们知道我们的最高权限管理者是root用户 , 它拥有者最高的权限操作 , 包括select , update , delete , update , grant 等操作 , 那么一般情况在公司之后DBA工程师会创建一个用户和密码 , 让你去链接数据库的操作 , 并给当前的用户设置某个操作的权限(或者所有权限) , 那么这时就需要我们来简单了解一下 :
- 如何创建用户和密码
- 给当前的用户授权
- 移除当前用户的权限
如果你想创建一个新的用户,则需要以下操作:
1.进入到mysql数据库下
mysql > use mysql Database changed
2.对新用户增删改
创建用户:
1 . 创建用户: # 指定ip : 192.118.1.1 的 heshun 用户登录 create user "heshun"@"192.118.1.1" identified by "123"; # 指定ip : 192.168.1.开头的用户的heshun用户登录 create user "heshun"@"192.168.1.%" identified by "123"; #指定任何ip 的heshun 用户登录 create user "heshun"@"%" identified by "123";
删除用户:
删除用户 drop user "用户名"@"IP地址";
修改用户:
#修改用户 rename user "用户名"@"IP地址" to "新用户名"@"IP地址";
修改密码:
set password for "用户名"@"IP地址" = Password("新密码");
3.对当前的用户授权管理
查看权限:
#查看权限 show grants for "用户"@"IP地址" #授权 heshun 用户仅对db1.t1文件有查询 , 插入和更新的操作 grant select , insert , update on db1.t1 to "heshun"@"%"; #表示所有的权限 , 除了grant 这个命令 , 这个命令是root才有的 , heshun用户对db1 下的t1文件有任意操作 grant all privilege on db1.t1 to "heshun"@"%"; #heshun 用户对db1 数据库中的文件执行任何操作 grant all privileges on db1.* to "heshun"@"%"; #heshun 用户对所有数据库中文化有任何操作 grant all privileges on *.* to "heshun"@%;
取消权限
# 取消heshun用户对db1 的 t1 文件的任意操作 revoke all on db1.t1 from "heshun"@"%"; #取消来自远程服务器的heshun用户对数据库db1的所有表的所有权限 revoke all on db1.* from "heshun"@"%"; 取消来自远程服务器的heshun用户所有数据库的所有的表的权限 revoke all privileges on *.* from "heshun"@"%";
ps:在公司中,一般情况下是DBA工程师来做这些授权工作。给你一个用户名和密码,你来连接就可以了。
4.MySql备份命令行操作
# 备份 : 数据表结构 + 数据 mysqdump -uroot db1 > db1.sql -p # 备份 : 数据表结构 mysqdump -uroot -d db1 > db1.sql -p #导入现有的数据到某个数据库 #1. 先创建一个新的数据库 create database db10; #将已有的数据库文件导入到db10 数据库中 mysqdump -uroot -d db10 < db1.sql -p
5.用户连接数据库
# 用户连接数据库 mysql -u"用户名" -h "IP地址" -P 端口 -p"密码"