问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 语句如何以查询的权限执行

发布网友 发布时间:2022-04-19 14:10

我来回答

2个回答

热心网友 时间:2022-04-08 01:36

一.权限表
mysql数据库中的3个权限表:user 、db、 host
权限表的存取过程是:
1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;
2) 通过权限验证,进行权限分配时,按照user?db?tables_priv?columns_priv的顺序进行分配。即先检查全局权限表
user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db,
tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检
查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。
二.MySQL各种权限(共27个)
(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)
1. usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
2. select
必须有select的权限,才可以使用select table
mysql> grant select on pyt.* to ‘p1′@’localhost’;
mysql> select * from shop;
3. create
必须有create的权限,才可以使用create table
mysql> grant create on pyt.* to ‘p1′@’localhost’;
4. create routine
必须具有create routine的权限,才可以使用{create |alter|drop} {procere|function}
mysql> grant create routine on pyt.* to ‘p1′@’localhost’;
当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
mysql> show grants for ‘p1′@’localhost’;
+—————————————————————————+
Grants for p1@localhost
+————————————————————————–+
| GRANT USAGE ON *.* TO ‘p1′@’localhost’ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257′ |
| GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO ‘p1′@’localhost’|
| GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO ‘p1′@’localhost’ |
+————————————————————————————-+
5. create temporary tables(注意这里是tables,不是table)
必须有create temporary tables的权限,才可以使用create temporary tables.
mysql> grant create temporary tables on pyt.* to ‘p1′@’localhost’;
[mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt
mysql> create temporary table tt1(id int);
6. create view
必须有create view的权限,才可以使用create view
mysql> grant create view on pyt.* to ‘p1′@’localhost’;
mysql> create view v_shop as select price from shop;
7. create user
要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
mysql> grant create user on *.* to ‘p1′@’localhost’;
或:mysql> grant insert on *.* to p1@localhost;
8. insert
必须有insert的权限,才可以使用insert into ….. values….
9. alter
必须有alter的权限,才可以使用alter table
alter table shop modify dealer char(15);
10. alter routine
必须具有alter routine的权限,才可以使用{alter |drop} {procere|function}
mysql>grant alter routine on pyt.* to ‘p1′@’ localhost ‘;
mysql> drop procere pro_shop;
Query OK, 0 rows affected (0.00 sec)
mysql> revoke alter routine on pyt.* from ‘p1′@’localhost’;
[mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt
mysql> drop procere pro_shop;
ERROR 1370 (42000): alter routine command denied to user ‘p1′@’localhost’ for routine ‘pyt.pro_shop’
11. update
必须有update的权限,才可以使用update table
mysql> update shop set price=3.5 where article=0001 and dealer=’A’;
12. delete
必须有delete的权限,才可以使用delete from ….where….(删除表中的记录)
13. drop
必须有drop的权限,才可以使用drop database db_name; drop table tab_name;
drop view vi_name; drop index in_name;
14. show database
通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。
对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema|
| pyt |
| test |
+——————–+
15. show view
必须拥有show view权限,才能执行show create view。
mysql> grant show view on pyt.* to p1@localho

参考资料:http://www.chinaz.com/program/2009/0902/89878.shtml

热心网友 时间:2022-04-08 02:54

为这个用户赋予只读权限:grant select on *.* to user1 identified by 'pwd';
--------------------------------------------
呵呵,放轻松,一切都会好起来的!追问还是很谢谢了!如果使用的是在网上买的mysql主机,就不可以设置用户(没有多余的用户权限没办法设置),没有其他办法控制表的权限吗?

追答用php不会慢,这个没有问题。
网上的主机应该也可以设置的,你写个程序,用root连接后,执行grant命令即可,然后其他程序都使用这个新用户和密码就可以了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
308S标注使用0W-30的机油,如果用5w-40的有影响么 如果飞船在飞行时遇到一粒沙,飞船是否会直接报废?为什么呢?_百度... 火车或地铁行驶中的苍蝇或蚊子这些飞虫是怎么飞的 我一直很疑惑,在地铁公交上的飞虫蚊子之类的,它们不停在杆上,就这么... 固态硬盘的读取是不是都比写入要快啊?才买了个东芝的Q Pro,发现写入496... 我是非护理专业的专科生 但我想考护理资格证 该怎么办呢 我是非护理专业的专科生 但我想考护理资格证 该怎么办? 中专非护理专业单招可以考护理吗 苹果宣布的AppleWatchSeries6和AppleWatchSE有哪些新功能和价格? 描写榕树生命力顽强的诗句 mysql 如何设置权限 怎么查看mysql数据库的权限 mysql如何查询某个数据库都有哪些用户具有哪些操作... 如何mysql用户只有查询权限 如何设置mysql用户的权限 教您如何查看MySQL用户权限 MySQL的权限有哪些? 梦见地下的瓷器宝物被雨冲出露出了地面,自己抢了一... 梦见捡到古瓷瓶给阴阳先子? 梦见自己在春天里的场景种地 还捡到了一个古董的歌... 梦见无意在墓地挖出古青花瓷器盘子 梦见自己丢东西,,但没丢是知道被藏起来了,, ... 微信更新后有哪些新功能 梦见家里的古董瓷器大瓶丢了 猴子捞月知道真相后会说什么 被朋友欺骗的说说心情短语 你有没有误解母亲的时候请你写出一件事并说说你明... 人最可贵之处在于看透生活的本质后,依然热爱生活 ... 看透别人的谎言说说 形容是看清真相痛苦,还是被欺骗却不知道痛苦语句 mysql 能不能对账号做权限设定, 让它查询的时候最... 试论述MySQL用户获取数据库数据访问权限的三种方法... linux mysql 如何查看用户与数据库之间的权限关系? mysql grant 哪些权限 如何设置Mysql root权限 linux mysql 数据库权限 mysql已加入指定表的查询权限,但是还是要报无权限 MySQL的权限有哪些 mysql怎么给予root权限 mysql怎么设置用户权限? 请教,如何查看mysql用户的权限设置 微信8.0更新有什么新的功能 我的手机微信版本升级以后,所有的功能都没有了,这是为什么? 如何利用电脑赚钱? 利用电脑赚钱的5种方法 在电脑上怎么赚钱? 电脑能挣钱的方法 怎样才能赚在家用一台电脑赚钱? 大学生如何用电脑挣到钱?? 用电脑在家怎么赚钱的方法?