MySQL的权限有哪些

什么是MySQL权限

1.授权表

mysql数据库中有三个授权表:user、db、host

访问权限的流程授权表是yes:

1)首先从用户表中的主机、用户、密码开始。
d.在这三个字段中判断连接的IP、用户名和密码是否在表中,身份验证

2)通过权限验证,按照useràdbàtables_privàcolumns_priv的顺序分配权限。
即先检查全局权限表用户,如果该用户中对应的权限为Y,则该用户对所有数据库的权限为Y,则不再检查db、tables_priv和columns_priv,如果发现权限为Y。
然后查看table_priv中数据库对应的表,找到表中的权限Y。
除其他外。
2.MySQL杂项权限(共27个)

(以下操作均以root身份登录授予权限,以p1@localhost登录执行各种命令。

1.使用

连接(登录)许可证创建用户时,会自动授予使用许可证(由默认)。

grantusageon*.*to'p1′@'localhost'identifiedby'123′;

这个权限就可以了只能用于数据库登录,但不能执行任何操作,并且使用许可证不能重复使用,即REVOKE不能删除用户。

2.select

您必须拥有使用select的权限

给定selectyt.*to'p1′@'localhost';

从mscope中选择*;

3.创建

必须有c。
只能用eat权限创建

grantcreateonpyt.*to'p1′@'localhost';

4.createroutine

grantcreateroutineonpyt.*to'p1′@'localhost';

当创作者给予它时EXECUTE,A会自动发出。
LTERROUTINE授予创建者的权限:

showgrantsfor'p1′@'localhost';

+————————————————————————+

Grantsforp1@localhost

+———————————————————————————+

p>|GRANTUSAGEON*.*TO‘p1′@’localhost’IDENTIFIEDBYPASSWORD’*23AE809DDACAF96AF0FD78ED04B6A265E05AA257′|

|GRANTSELECT、CREATE、CREATEROUTINEON`pyt`.*TO'p1′@'localhost'|

|GRANTEXECUTE,ALTERROUTINEONPROCEDURE`pyt`.`pro_shop1`TO'p1'@'localhost'|

+———————————————————————————————-+

5.创建时间表(注意这是表格,不是表格)

必须有Createtemporarytables只有在临时表创建者的许可下才能使用.

grantcreatetemporarytablesonpyt.*to'p1′@'localhost';

[mysql@mydev~]$mysql-hlocalhost-up1-ppyt

createtemporarytablett1(idint);

6.createview

如果可以使用createview之前

必须有createview权限grantcreateviewonpyt.*to'p1′@'localhost';

createviewv_shopasselectpricefromshop;

7.CREATORUSER

要使用CREATEUSER,您必须具有全局CREATEUSER权限或INSERT权限mysql数据库。

grantcreateuseron*.*to'p1′@'localhost';

grantinserton*.*top1@localhost;

8.Insert

9.Alternate

您只能在需要替代方案许可的情况下使用替代方案

altertableshopmodifydealerchar(15);

10.alteroutine

{alter|drop}{procedure|函数}

grantalterroutineonpyt.*to'p1使用之前必须有可选权限@'localhost';

dropprocedurepro_shop;

QueryOK,0rowsaffected(0.00秒)

overridealterroutineonpyt.*from'p1′@'localhost';

[mysql@mydev~]$mysql-你好calhost-up1-ppyt

dropprocedurepro_shop;

ERROR1370(42000):alterroutinecommanddeniedtouser'p1′@'localhost'forroutine'pyt.pro_shop'

11.update

必须更新e权限,更新能够

updateshopsetprice=3.5wherearticle=0001anddealer='A';

12.delete

使用DELETEFROM….WHERE….(删除表中的记录)之前,您必须拥有DELETE权限。

13.删除

dropdatabasedb_name;droptabletab_name;

dropviewvi_name;dropindexin_name;

您必须拥有使用它的许可证。
14.showdatabase

除非您拥有全局SHOWDATABASES许可证,否则您只能通过showdatabase查看您拥有某些权限的数据库。

p1@localhost用户没有mysql数据库的权限,因此以此身份登录查询时看不到mysql数据库:

mysql>info数据库;

+——————+

|数据库|

+——————–+

|data_plan|

|pyt|

p>|测试|

+——————+

15.显示

您必须拥有执行显示视图的权限。

mysql>grantshowviewonpyt.*top1@localhost;

showcreateviewv_shop;

16.索引

[创建|删除]index

grantindexonpyt.*top1@localhost必须有index权限才能执行;

createindexix_shoponshop(clause);

dropindexix_shoponshop;

抱歉

现有活动、程序执行

callpro_shop1(0001,@a);

+————+

|文字|

+————+

|0001|

|0001|

+————+

select@a;

+———+

|@a|

+——+

|2|

+——+

18.锁定表

必须有lo。
只能使用具有cktables权限的locktables

grantlocktablesonpyt.*top1@localhost;

locktablesa1re通知;

unlocktables;

19.参考

权限通过引用,用户可以使用另一个表的字段作为特定表的外键约束。

20.重新加载

刷新[表|日志|权限]

grantreloadonpyt.*top1@localhost;

error1221(HY000):DBGRANTandGLOBALPRIVILEGES错误

grantreloadon*.*to'p1′@'localhost';

QueryOK,0rowsaffected(0.00秒)

p>

flushtables;

21.复制客户端

拥有该权限可以请求主服务器和从服务器状态。

showmasterstatus;

ERROR1227(42000):已收到;您需要SUPER、REPLICATIONCLIENT权限来执行此任务grantsuperon*.*top1@localhost;

showmasterstatus;

+——————+————-+—————+——————+

|文件|位置|Binlog_Do_DB|Binlog_Ignore_DB|

|mysql-bin.000006|2111|||

showslavestatus;

22.复制从属

有权限查看此从属server,从主服务器读取二进制文件。

showslavehosts;

ERROR1227(42000):accessied;您支持的服务从属权限

showbinlogevents;

error1227(42000):找到;您还回复了rthisoperation

grantreplicationslaveon*.*top1@localhost;

showslavehosts;

清空(0.00秒)

showbinlogevnts;

+—————+——————+

|Log_name|Pos|event_type|server_id|End_log_pos|info|+——————+——-+——————+—————+————-+——————+

|mysql-bin.000005|4|format_desc|1|98|服务器:5.0.77-log,Binlogver:4||mysql-bin.000005|98|查询|1|197|使用`mysql`;createtablea1(iint)engine=myisam|

……………………………………………………………………………….

23.关闭

关闭MySQL:

[mysql@mydev~]$mysqladminshutdself

再次连接:

[mysql@mydev~]$mysql

ERROR2002(HY000):-从localMySQLserverthroughsocket'/tmp/mysql.sock'(2)

[mysql@mydev~]$cd/u01/mysql/bin

[mysql@mydevbin]$./mysqld_safe&

[mysql@mydevbin]$mysql

对于那些已经拥有的人权限)

grantGrantoptiononpyt.*top1@localhost;

grantsselectonpyt.*top2@localhost;

grantsselectonpyt.*top2@localhost;

p>

25.File

只有在有文件的情况下才可以执行Select。
权限...导出并加载

grantfileon*.*top1@localhost;

loaddatainfile'/totablepet中的home/mysql/pet.txt;

26.super

此权限允许用户终止任何请求、修改全局变量的SET声明。
使用CHANGEMASTER、PURGEMASTERLOGS。

grantsuperon*.*top1@localhost;

purgemasterlogsbefore'mysql-bin.000006';

27.处理

拥有此权限,用户可以执行SHOWPROCESSLIST和KILL命令。
默认情况下,每个用户都可以执行SHOWPROCESSLIST命令,但只能查询该用户的进程。

显示进程列表;

+——-+——+————+———+————+——+——-+————+

|id|用户|主机|db|命令|时间|状态|信息|

+——-+——+————–+——

|12|p1|localhost|pyt|请求|0|NULL|显示进程列表|

另外

管理权限(例如super、进程、文件等)您不能指定数据库,它必须位于*.*

grantsuperonpyt.*top1@localhost;

ERROR1221(HY000):DBGRANT和GLOBALPRIVILEGES错误

grantsuperontop1@localhost;

QueryOK,0rowsaffected(0.01sec))

MySQL表的权限设置方式及作用解析MySQL一张表不同权限

MySQL表权限设置方法及功能分析MySQL是目前广泛使用的关系型数据库,其安全性非常重要,尤其是当很多用户访问和共享数据时。
MySQL提供丰富的权限管理功能,管理员可以通过权限设置来保护数据安全。
本文将介绍设置MySQL表权限的方法和作用,帮助管理员更好地保护MySQL数据。
1、MySQL表权限设置方法:MySQL表权限设置主要包括两个方面:用户授权和用户撤销授权。
1、用户授权是指授予用户访问MySQL表的权限用户可以对MySQL表进行SELECT、INSERT、UPDATE、DELETE等操作。
授权需要管理员拥有GRANT权限,授权可以通过命令来实现:GRANT授权操作ONtablenameTEusername@hostnameIDENTIFIEDBY'password';。
例如,授权用户test对test_db库中的test_db表进行SELECT操作,可以使用如下命令:GRANTSELECTONtest_db.test_tableTOtest@localhostIDENTIFIEDBY'mypassword'2、用户撤销是指用户访问MySQL表的权限,用户将无法再访问MySQL表。
授权撤销需要管理员拥有REVOKE权限,权限授权可以通过命令实现:REVOKE授权函数ONtablenameFROMusername@hostname;。
例如,对于测试用户,要撤销其对test_db库中的test_table表执行SELECT操作的权限,可以使用以下命令:REVOKESELECTONtest_db.test_tableFROMtest@localhost2.MySQL表权限的作用MySQL表的权限可以控制用户对MySQL表的使用行为可以更好地保护MySQL数据。
MySQL表权限主要包括以下功能:1、加强数据安全MySQL表权限可以防止用户获取不必要的数据,损害数据库的安全。
管理员可以根据不同用户的需求进行适当的授权,例如只授权SELECT操作查询某条数据,或者只授权用户执行INSERT或UPDATE操作。
2、细粒度的数据访问控制MySQL表权限可以根据实际业务需求,精准控制用户的数据访问权限。
例如:授权用户可以使用特定的表,不能使用其他表,以保证数据隔离。
3、保证数据一致性MySQL表权限可以保证多个用户访问、修改时数据的一致性。
管理员可以对MySQL表进行授权,确保数据只能由特定用户修改,避免数据冲突。
3、总结MySQL表权限设置方法和功能是MySQL数据库管理中不可忽视的部分。
通过合理的权限设置可以达到保证MySQL数据安全的目的。
管理员必须实施控制根据客户实际需求对MySQL表设置适当的权限,实现数据保护、细粒度的数据访问控制、保证数据一致性。
在实际操作中,管理员必须熟悉MySQL的授权机制并正确使用命令,以保证MySQL数据的安全性和正确性。