MySQL查看用户权限
来源:互联网 发布:标题优化教程 编辑:程序博客网 时间:2024/04/29 18:31
[全屏查看所有代码]
1. [代码]查看用户权限
1
2
3
4
5
show grants
for
你的用户;
show grants
for
root@
'localhost'
;
show grants
for
webgametest@10.3.18.158;
show
create
database
dbname; 这个可以看到创建数据库时用到的一些参数。
show
create
table
tickets; 可以看到创建表时用到的一些参数
2. [代码][SQL]代码
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
GRANT
USAGE
ON
*.*
TO
'discuz'
@
'localhost'
IDENTIFIED
BY
PASSWORD
'*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB'
;
GRANT
ALL
PRIVILEGES
ON
`discuz`.*
TO
'discuz'
@
'localhost'
;
我先按我的理解解释一下上面两句的意思
建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限
使用
GRANT
GRANT
命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:
mysql>
GRANT
<
privileges
>
ON
<what>
->
TO
<
user
> [IDENTIFIED
BY
"<password>"
]
-> [
WITH
GRANT
OPTION
];
正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。
<
privileges
>是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:
数据库/数据表/数据列权限:
Alter
: 修改已存在的数据表(例如增加/删除列)和索引。
Create
: 建立新的数据库或数据表。
Delete
: 删除表的记录。
Drop
: 删除数据表或数据库。
INDEX
: 建立或删除索引。
Insert
: 增加表的记录。
Select
: 显示/搜索表的记录。
Update
: 修改表中已存在的记录。
全局管理权限:
file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
特别的权限:
ALL
: 允许做任何事(和root一样)。
USAGE: 只允许登录
--其它什么也不允许做。
这些权限所涉及到的MySQL的特征,其中的一些我们至今还没看到,而其中的绝大部分是你所熟悉的。
<what> 定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。 dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。
<
user
>指定可以应用这些权限的用户。在MySQL中,一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如kevin@%将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。
<
password
>指定了用户连接MySQL服务所用的口令。它被用方括号括起,说明IDENTIFIED
BY
"<password>"
在
GRANT
命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令,当他进行连接时就不需要口令。
这个命令中可选的
WITH
GRANT
OPTION
部分指定了用户可以使用
GRANT
/
REVOKE
命令将他拥有的权限赋予其他用户。请小心使用这项功能
--虽然这个问题可能不是那么明显!例如,两个都拥有这个功能的用户可能会相互共享他们的权限,这也许不是你当初想看到的。
让我们来看两个例子。建立一个名为dbmanager的用户,他可以使用口令managedb从server.host.net连接 MySQL,并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户),这可以使用下面的
GRANT
命令:
mysql>
GRANT
ALL
ON
db.*
->
TO
dbmanager@server.host.net
-> IDENTIFIED
BY
"managedb"
->
WITH
GRANT
OPTION
;
现在改变这个用户的口令为funkychicken,命令格式如下:
mysql>
GRANT
USAGE
ON
*.*
->
TO
dbmanager@server.host.net
-> IDENTIFIED
BY
"funkychicken"
;
请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。
现在让我们建立一个新的名为jessica的用户,他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和 email地址,但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如,
Select
),但是他可以对Users表的
name
列和email列执行
Update
操作。命令如下:
mysql>
GRANT
Select
ON
db.*
->
TO
jessica@%.host.net
-> IDENTIFIED
BY
"jessrules"
;
mysql>
GRANT
Update
(
name
,email)
ON
db.Users
->
TO
jessica@%.host.net;
请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外,我们也没有给他向其他用户传递他的权限的能力,因为我们在命令的最后没有带上
WITH
GRANT
OPTION
。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。
-----------------------------------------------------
mysql>
grant
select
,
insert
,
update
,
delete
on
111.*
to
hongdadbuser@
"%"
identified
by
"111"
;
测试环境:WIN32 mysql5.0.45
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp 用户数据库:phplampDB
1.新建用户。
//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql>
insert
into
mysql.
user
(Host,
User
,
Password
)
values
(
"localhost"
,
"phplamp"
,
password
(
"1234"
));
//刷新系统权限表
mysql>flush
privileges
;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功
2.为用户授权。
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>
create
database
phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>
grant
all
privileges
on
phplampDB.*
to
phplamp@localhost identified
by
'1234'
;
//刷新系统权限表
mysql>flush
privileges
;
mysql>其它操作
/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/
3.删除用户。
@>mysql -u root -p
@>密码
mysql>
DELETE
FROM
user
WHERE
User
=
"phplamp"
and
Host=
"localhost"
;
mysql>flush
privileges
;
//删除用户的数据库
mysql>
drop
database
phplampDB;
4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>
update
mysql.
user
set
password
=
password
(
'新密码'
)
where
User
=
"phplamp"
and
Host=
"localhost"
;
mysql>flush
privileges
;
-------------------------------------------------
mysql>
grant
all
privileges
on
webgame_test.*
to
webgametest@10.3.18.158 identified
by
'gametestdb'
;
Query OK, 0
rows
affected (0.01 sec)
mysql> flush
privileges
;
Query OK, 0
rows
affected (0.01 sec)
mysql> exit;
show grants
for
webgametest@10.3.18.158;
0 0
- MySQL查看用户权限
- mysql 查看用户权限
- mysql查看用户权限命令
- MySQL查看用户权限
- mysql 查看用户权限
- MySQL查看用户权限
- 查看mysql的用户权限
- mysql查看用户权限
- 您如何查看MySQL用户权限
- MYSQL查看和增加用户权限
- mysql grant查看用户权限命令
- [MySQL]查看用户权限与GRANT用法
- 【转】mysql查看用户权限与GRANT用法
- 教您如何查看MySQL用户权限
- Mysql的用户权限管理--查看,授权,回收
- 查看用户权限
- 查看用户权限
- 查看用户权限
- Cuda kernel failed. Error: invalid device function
- 磁盘信息处理概述
- 极客学院Carol老师的UICollectionView实现瀑布流
- CentOS主菜单编辑工具
- 【译】VisionMobile:2015 IOT大趋势(五)每人都是开发者
- MySQL查看用户权限
- Mysql Limit操作
- 黑马day03 servlet的生命周期
- PreferenceActivity-Android的设置界面
- 如何获取跟系统相关的时间(oracle)
- Perl按修改日期排序文件
- USB驱动框架分析1
- epoll的使用方法
- How To Use TKPROF To Trace And Analyze Sql Explan