MySQL查看用户权限

转:http://www.oschina.net/code/snippet_222150_12541

1. [代码]查看用户权限    

1show grants for 你的用户;
2show grants for root@'localhost';
3show grants for webgametest@10.3.18.158;
4show create database dbname;  这个可以看到创建数据库时用到的一些参数。
5show create table tickets;    可以看到创建表时用到的一些参数

2. [代码][SQL]代码    

001GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';
002GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';
003 
004我先按我的理解解释一下上面两句的意思
005建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
006然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限
007 
008使用GRANT
009 
010GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:
011 
012mysql> GRANT <privileges> ON <what>
013-> TO <user> [IDENTIFIED BY "<password>"]
014-> [WITH GRANT OPTION];
015 
016 
017  正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。
018 
019  <privileges>是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:
020 
021  数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
022Create: 建立新的数据库或数据表。
023Delete: 删除表的记录。
024Drop: 删除数据表或数据库。
025INDEX: 建立或删除索引。
026Insert: 增加表的记录。
027Select: 显示/搜索表的记录。
028Update: 修改表中已存在的记录。
029 
030  全局管理权限:
031 
032file: 在MySQL服务器上读写文件。
033PROCESS: 显示或杀死属于其它用户的服务线程。
034RELOAD: 重载访问控制表,刷新日志等。
035SHUTDOWN: 关闭MySQL服务。
036 
037  特别的权限:
038 
039ALL: 允许做任何事(和root一样)。
040USAGE: 只允许登录--其它什么也不允许做。
041 
042 
043  这些权限所涉及到的MySQL的特征,其中的一些我们至今还没看到,而其中的绝大部分是你所熟悉的。
044 
045<what> 定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。 dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。
046 
047  <user>指定可以应用这些权限的用户。在MySQL中,一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如kevin@%将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。
048 
049  <password>指定了用户连接MySQL服务所用的口令。它被用方括号括起,说明IDENTIFIED BY "<password>"GRANT命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令,当他进行连接时就不需要口令。
050 
051这个命令中可选的WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。请小心使用这项功能--虽然这个问题可能不是那么明显!例如,两个都拥有这个功能的用户可能会相互共享他们的权限,这也许不是你当初想看到的。
052 
053  让我们来看两个例子。建立一个名为dbmanager的用户,他可以使用口令managedb从server.host.net连接 MySQL,并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户),这可以使用下面的GRANT命令:
054 
055mysql> GRANT ALL ON db.*
056-> TO dbmanager@server.host.net
057-> IDENTIFIED BY "managedb"
058-> WITH GRANT OPTION;
059 
060 
061现在改变这个用户的口令为funkychicken,命令格式如下:
062   mysql> GRANT USAGE ON *.*
063   -> TO dbmanager@server.host.net
064   -> IDENTIFIED BY "funkychicken";
065 
066请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。
067 
068  现在让我们建立一个新的名为jessica的用户,他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和 email地址,但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如,Select),但是他可以对Users表的name列和email列执行Update操作。命令如下:
069 
070mysql> GRANT Select ON db.*
071-> TO jessica@%.host.net
072-> IDENTIFIED BY "jessrules";
073mysql> GRANT Update (name,email) ON db.Users
074-> TO jessica@%.host.net;
075 
076 
077  请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外,我们也没有给他向其他用户传递他的权限的能力,因为我们在命令的最后没有带上WITH GRANT OPTION。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。
078 
079-----------------------------------------------------
080 
081mysql> grant select,insert,update,delete on 111.* to hongdadbuser@"%" identified by "111";
082 
083 
084 
085 
086测试环境:WIN32 mysql5.0.45 
087 
088 
089首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
090 
091注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
092    用户:phplamp  用户数据库:phplampDB
093 
0941.新建用户。
095 
096//登录MYSQL
097@>mysql -u root -p
098@>密码
099//创建用户
100mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
101//刷新系统权限表
102mysql>flush privileges;
103这样就创建了一个名为:phplamp  密码为:1234  的用户。
104 
105然后登录一下。
106 
107mysql>exit;
108@>mysql -u phplamp -p
109@>输入密码
110mysql>登录成功
111 
1122.为用户授权。
113 
114//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
115@>mysql -u root -p
116@>密码
117//首先为用户创建一个数据库(phplampDB)
118mysql>create database phplampDB;
119//授权phplamp用户拥有phplamp数据库的所有权限。
120>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
121//刷新系统权限表
122mysql>flush privileges;
123mysql>其它操作
124 
125/*
126如果想指定部分权限给一用户,可以这样来写:
127mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
128//刷新系统权限表。
129mysql>flush privileges;
130*/
131 
1323.删除用户。
133@>mysql -u root -p
134@>密码
135mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
136mysql>flush privileges;
137//删除用户的数据库
138mysql>drop database phplampDB;
139 
1404.修改指定用户密码。
141@>mysql -u root -p
142@>密码
143mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
144mysql>flush privileges;
145 
146-------------------------------------------------
147 
148mysql> grant all privileges on webgame_test.* to webgametest@10.3.18.158 identified by 'gametestdb';
149Query OK, 0 rows affected (0.01 sec)
150 
151mysql> flush privileges;
152Query OK, 0 rows affected (0.01 sec)
153 
154mysql> exit;
155 
156show grants for webgametest@10.3.18.158;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值