欢迎光临
我们一直在努力

MySQL权限系统


MySQL


限系统







1) 



设置口令


设置


MySQL


用户口令的方法有多种:





CREATE USER…IDENTIFIED BY





GRANT…IDENTIFIED BY





SET PASSWORD





mysqladmin password





UPDATE


授权表(不推荐)


为所有用户帐户分配唯一的强口令。


?
避免可以轻易猜测到的口令。


?
使用以下


SELECT


语句可列出没有口令的所有帐户:


SELECT Host, User FROM mysql.user


WHERE Password = '';


?
确定重复口令:


SELECT User FROM mysql.user GROUP BY
password


HAVING count(user)>1;


?
让口令失效:


ALTER USER jim@localhost PASSWORD EXPIRE;


 


2) 


Mysql


支持的权限



Privilege



Meaning and
  Grantable Levels



ALL
 [PRIVILEGES]



Enable use of


 



ALTER TABLE


. Levels: Global, database,
 table.



ALTER ROUTINE



Enable stored routine
 creation. Levels: Global, database.



CREATE
 TABLESPACE



Enable views to be created
 or altered. Levels: Global, database, table.



DELETE



Enable databases, tables,
 and views to be dropped. Levels: Global, database, table.



EVENT



Enable the user to cause the
 server to read or write files. Level: Global.



GRANT OPTION



Enable use of


 



INSERT


. Levels: Global, database, table, column.



LOCK TABLES



Enable foreign key creation.
 Levels: Global, database, table, column.



RELOAD



Enable the user to ask where
 master or slave servers are. Level: Global.



REPLICATION
 SLAVE



Enable use of


 



UPDATE


. Levels: Global, database,
 table, column.



USAGE



 


3) 


允许的主机名格式示例


?
主机名:


localhost


?
合格的主机名:


'hostname.example.com'


?


IP


编号:


192.168.9.78


?


IP


地址:


10.0.0.0/255.255.255.0


?
模式或通配符:


%





_


 


用户名和主机名示例:


?


john@10.20.30.40


?


john@'10.20.30.%'


?


john@'%.ourdomain.com'


?


john@'10.20.30.0/255.255.255.0'


 


4) 


GRANT


语句


?


GRANT


语句可创建新帐户或者修改现有帐户。


?


GRANT


语法:


GRANT SELECT ON world_innodb.* TO


'kari'@'localhost' IDENTIFIED BY 'Abc123';


?
该语句的子句:



要授予的权限



权限级别:



全局:


*.*



数据库:


.*



表:


.



存储例程:


.



要授予其权限的帐户



可选口令


 


5) 


权限级别


/


表内容和权限


user


针对服务器已知的每个帐户包含一个记录


db


特定于数据库的权限


tables_priv


特定于表的权限


columns_priv


特定于列的权限


procs_priv


存储过程和函数权限


 


6) 


撤消帐户权限


?
使用


REVOKE


语句可以撤消特定的


SQL


语句权限:


REVOKE DELETE, INSERT, UPDATE ON
world_innodb.*


FROM 'Amon'@'localhost';


?
撤消权限以便将权限授予其他用户:


REVOKE GRANT OPTION ON world_innodb.*


FROM 'Jan'@'localhost';


?
撤消所有权限(包括向他人授权):


REVOKE ALL PRIVILEGES,
GRANT OPTION


FROM 'Sasha'@'localhost';


?
在发出


REVOKE


之前使用


SHOW GRANTS


语句确定要


撤消的权限,随后再次确认结果。


 


7) 


禁用客户机访问控制


要指示服务器不读取授权表并禁用访问控制,可使用


–skip-grant-tables


选项。


?
每个连接都成功:



可以提供任何用户名及任何口令,并且可以从任何主机连接。



该选项将禁用整个权限系统。



连接的用户实际上拥有所有权限。


?
阻止客户机连接:



使用


–skip-networking


选项可阻止网络访问,并且仅允许在本地套接字、命名管道或共享内存上访问。



使用


–socket


选项可在非标准套接字上启动服务器以防止本地应用程序或用户随便访问。


 


8) 


资源限制


通过将全局变量


MAX_USER_CONNECTIONS


设置为非


零值,限制使用服务器资源。



这将限制任何一个帐户的同时连接数量,但不会限制客


户机在连接后能执行的操作。


?
限制单个帐户的以下服务器资源:





MAX_QUERIES_PER_HOUR


:一个帐户每小时可发出的查询数量





MAX_UPDATES_PER_HOUR


:一个帐户每小时可发出的更新数量





MAX_CONNECTIONS_PER_HOUR


:一个帐户每小时可连接到服务器的次数





MAX_USER_CONNECTIONS


:允许的同时连接数量

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。