《Mysql学习mysql数据库用户与权限管理学习笔记》要点: 本文介绍了Mysql学习mysql数据库用户与权限管理学习笔记,希望对您有用。如果有疑问,可以联系我们。
导读:一、MySQL用户的基本说明:1.1 用户的基本结构MySQL的用户:用户名@主机■用户名:16个字符以内■主机:可以是主机名、IP地址、网络地址等...
一、MySQL用户的基本说明:MYSQL应用
1.1 用户的基本结构 MySQL的用户:用户名@主机MYSQL应用
■用户名:16个字符以内 ■主机:可以是主机名、IP地址、网络地址等 主机名:www.jbxue.com,localhostMYSQL应用
IP:192.168.0.1MYSQL应用
网络地址:172.16.0.0/255.255.0.0MYSQL应用
主机还支持通配符:%和_MYSQL应用
172.16.%.%MYSQL应用
%.jbxue.com 注意:对于包含了主机名的用户,MySQL会尝试反解析主机名,此时可能会造成连接非常慢,如果反解析的IP地址与连接点的地址不同,还可能出现无法连接的情况.因此,为了加快连接并避免出现解析问题,可以在my.cnf文件中加入如下一行加速连接:MYSQL应用
--skip-name-resolve MySQL用户的密码有MySQL内部的password()函数管理.MYSQL应用
1.2 授权表: MySQL用户只是用于认证,而用户具有的权限有相应的授权机制实现.首先MySQL用户授权的,主要为如下刘张表:MYSQL应用
user: Contains user accounts,global privileges,and other non-privilege columns. user: 用户帐号、全局权限MYSQL应用
db: Contains database-level privileges. db: 库级别权限MYSQL应用
host: Obsolete. host: 废弃MYSQL应用
tables_priv: Contains table-level privileges. tables_priv: 表级别权限MYSQL应用
columns_priv: Contains column-level privileges. columns_priv: 列级别权限MYSQL应用
procs_priv: Contains stored procedure and function privileges. procs_priv: 存储过程和存储函数相关的权限MYSQL应用
proxies_priv: Contains proxy-user privileges. proxies_priv: 代理用户权限 在MySQL数据库服务启动后,这六张表会被直接加载到内存,而今后所有的认证都直接从内存中这六张表获取,而不是去读取磁盘.MYSQL应用
1.3 各授权表的说明: ■ user表范围列决定是否允许或拒绝到来的连接.对于允许的连接,user表授予的权限指出用户的全局(超级用户)权限.这些权限适用于服务器上的all数据库. ■ db表范围列决定用户能从哪个主机存取哪个数据库.权限列决定允许哪个操作.授予的数据库级别的权限适用于数据库和它的表. ■ tables_priv和columns_priv表类似于db表,但是更精致:它们在表和列级应用而非在数据库级.授予表级别的权限适用于表和所有它的列.授予列级别的权限只适用于专用列. ■ procs_priv表适用于保存的程序.授予程序级别的权限只适用于单个程序. 管理权限(例如RELOAD或SHUTDOWN等等)仅在user表中被指定.这是因为管理性操作是服务器本身的操作并且不是特定数据库,因此没有理由在其他授权表中列出这样的权限.MYSQL应用
事实上,只需要查询user表来决定你是否执行一个管理操作.MYSQL应用
FILE权限也仅在user表中指定.它不是管理性权限,但你在服务器主机上读或写文件的能力与你正在存取的数据库无关.MYSQL应用
当mysqld服务器启动时,将授权表的内容读入到内存中. 可以通过FLUSH PRIVILEGES语句或执行mysqladmin flush-privileges或mysqladmin reload命令让它重新读取表.MYSQL应用
二、MySQL提供的权限 账户权限信息被存储在mysql数据库的user、db、host、tables_priv、columns_priv和procs_priv表中. 在MySQL启动时时,服务器将这些数据库表内容读入内存.MYSQL应用
GRANT和REVOKE语句所用的涉及权限的名称显示在下表,还有在授权表中每个权限的表列名称和每个权限有关的上下文.MYSQL应用
权限 列 上下文 ? CREATE ?Create_priv ?数据库、表或索引 ? DROP ?Drop_priv ?数据库或表 ? GRANT OPTION ?Grant_priv ?数据库、表或保存的程序 ? REFERENCES ?References_priv ?数据库或表 ? ALTER ?Alter_priv ?表 ? DELETE ?Delete_priv ?表 ? INDEX ?Index_priv ?表 ? INSERT ?Insert_priv ?表 ? SELECT ?Select_priv ?表 ? UPDATE ?Update_priv ?表 ? CREATE VIEW ?Create_view_priv ?视图 ? SHOW VIEW ?Show_view_priv ?视图 ? ALTER ROUTINE ?Alter_routine_priv ?保存的程序 ? CREATE ROUTINE ?Create_routine_priv ?保存的程序 ? EXECUTE ?Execute_priv ?保存的程序 ? FILE ?File_priv ?服务器主机上的文件访问 ? CREATE TEMPORARY TABLES ?Create_tmp_table_priv ?服务器管理 ? LOCK TABLES ?Lock_tables_priv ?服务器管理 ? CREATE USER ?Create_user_priv ?服务器管理 ? PROCESS ?Process_priv ?服务器管理 ? RELOAD ?Reload_priv ?服务器管理 ? REPLICATION CLIENT ?Repl_client_priv ?服务器管理 ? REPLICATION SLAVE ?Repl_slave_priv ?服务器管理 ? SHOW DATABASES ?Show_db_priv ?服务器管理 ? SHUTDOWN ?Shutdown_priv ?服务器管理 ? SUPER ?Super_priv ?服务器管理 ? 三、权限更改何时生效 当mysqld启动时,所有授权表的内容被读进内存并且从此时生效.MYSQL应用
当服务器注意到授权表被改变了时,现存的客户端连接有如下影响: ■ 表和列权限在客户端的下一次哀求时生效. ■ 数据库权限改变在下一个USE db_name命令生效. ■ 全局权限的改变和密码改变在下一次客户端连接时生效. 如果用GRANT、REVOKE或SET PASSWORD对授权表进行修改,服务器会注意到并立即重新将授权表载入内存.
MYSQL应用 编程之家PHP培训学院每天发布《Mysql学习mysql数据库用户与权限管理学习笔记》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|