权限管理
我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。那么这时就需要我们来简单了解一下:
如何创建用户和密码
给当前的用户授权
移除当前用户的权限
如果你想创建一个新的用户,则需要以下操作:
1.进入到mysql数据库下
mysql> use mysql Database changed
1
2
3
|
mysql
>
use
mysql
Database
changed
|
2.对新用户增删改
1.创建用户: # 指定ip:192.118.1.1的mjj用户登录 create user 'mjj'@'192.118.1.1' identified by '123'; # 指定ip:192.118.1.开头的mjj用户登录 create user 'mjj'@'192.118.1.%' identified by '123'; # 指定任何ip的mjj用户登录 create user 'mjj'@'%' identified by '123'; 2.删除用户 drop user '用户名'@'IP地址'; 3.修改用户 rename user '用户名'@'IP地址' to '新用户名'@'IP地址'; 4.修改密码 set password for '用户名'@'IP地址'=Password('新密码'); 复制代码 3.对当前的用户授权管理 复制代码 #查看权限 show grants for '用户'@'IP地址' #授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作 grant select ,insert,update on db1.t1 to "mjj"@'%'; # 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作 grant all privileges on db1.t1 to "mjj"@'%'; #mjj用户对db1数据库中的文件执行任何操作 grant all privileges on db1.* to "mjj"@'%'; #mjj用户对所有数据库中文件有任何操作 grant all privileges on *.* to "mjj"@'%'; #取消权限 # 取消mjj用户对db1的t1文件的任意操作 revoke all on db1.t1 from 'mjj'@"%"; # 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限 revoke all on db1.* from 'mjj'@"%"; 取消来自远程服务器的mjj用户所有数据库的所有的表的权限 revoke all privileges on *.* from 'mjj'@'%';
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
1.创建用户
:
# 指定ip:192.118.1.1的mjj用户登录
create
user
'mjj'
@
'192.118.1.1'
identified
by
'123'
;
# 指定ip:192.118.1.开头的mjj用户登录
create
user
'mjj'
@
'192.118.1.%'
identified
by
'123'
;
# 指定任何ip的mjj用户登录
create
user
'mjj'
@
'%'
identified
by
'123'
;
2.删除用户
drop
user
'用户名'
@
'IP地址'
;
3.修改用户
rename
user
'用户名'
@
'IP地址'
to
'新用户名'
@
'IP地址'
;
4.修改密码
set
password
for
'用户名'
@
'IP地址'
=
Password
(
'新密码'
)
;
复制代码
3.对当前的用户授权管理
复制代码
#查看权限
show
grants
for
'用户'
@
'IP地址'
#授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作
grant
select
,
insert
,
update
on
db1
.
t1
to
"mjj"
@
'%'
;
# 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作
grant
all
privileges
on
db1
.
t1
to
"mjj"
@
'%'
;
#mjj用户对db1数据库中的文件执行任何操作
grant
all
privileges
on
db1
.
*
to
"mjj"
@
'%'
;
#mjj用户对所有数据库中文件有任何操作
grant
all
privileges
on
*
.
*
to
"mjj"
@
'%'
;
#取消权限
# 取消mjj用户对db1的t1文件的任意操作
revoke
all
on
db1
.
t1
from
'mjj'
@
"%"
;
# 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限
revoke
all
on
db1
.
*
from
'mjj'
@
"%"
;
取消来自远程服务器的
mjj用户所有数据库的所有的表的权限
revoke
all
privileges
on
*
.
*
from
'mjj'
@
'%'
;
|
ps:在公司中,一般情况下是DBA工程师来做这些授权工作。给你一个用户名和密码,你来连接就可以了。
4.MySql备份命令行操作
# 备份:数据表结构+数据 mysqdump -u root db1 > db1.sql -p # 备份:数据表结构 mysqdump -u root -d db1 > db1.sql -p #导入现有的数据到某个数据库 #1.先创建一个新的数据库 create database db10; # 2.将已有的数据库文件导入到db10数据库中 mysqdump -u root -d db10 < db1.sql -p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 备份:数据表结构+数据
mysqdump
-
u
root
db1
>
db1
.
sql
-
p
# 备份:数据表结构
mysqdump
-
u
root
-
d
db1
>
db1
.
sql
-
p
#导入现有的数据到某个数据库
#1.先创建一个新的数据库
create
database
db10
;
# 2.将已有的数据库文件导入到db10数据库中
mysqdump
-
u
root
-
d
db10
<
db1
.
sql
-
p
|