1 授权表范围列的大小写敏感性
+--------------+-----+-----+---------+----+-----------+------------+
| 列 |host |user |password |db |table_name |column_name |
| 大小写敏感性 |no |yes |yes |yes |yes |no |
+--------------+-----+-----+---------+----+-----------+------------+
2 授权表权限列
授权表还包含权限列,他们指出在范围列中指定的用户拥有何种权限。
+------------+-----------------+----------------------+
| 权限 | 列 | 作用域 |
+------------+-----------------+----------------------+
| select | select_priv | 表 |
| insert | insert_priv | 表 |
| update | update_priv | 表 |
| delete | delete_priv | 表 |
| index | index_priv | 表 |
| alter | alter_priv | 表 |
| create | create_priv | 数据库、表或索引 |
| drop | drop_priv | 数据库或表 |
| grant | grant_priv | 数据库或表 |
| references | references_priv | 数据库或表 |
| reload | reload_priv | 服务器管理 |
| shutdown | shutdown_priv | 服务器管理 |
| process | process_priv | 服务器管理 |
| file | file_priv | 在服务器上的文件存取 |
+------------+-----------------+----------------------+
3.数据库和表权限
下列权限运用于数据库和表上的操作。
alter
允许使用alter table语句
create
允许创建数据库和表,但不允许创建索引。
delete
允许从表中删除现有记录。
drop
允许删除(抛弃)数据库和表,但不允许删除索引。
index
允许创建并删除索引。
references
目前不用。
select
允许使用select语句从表中检索数据。对不涉及表的select语句就不必要,如select now()或select 4/2。
update
允许修改表中的已有的记录。
管理权限
下列权限运用于控制服务器或用户授权能力的操作的管理性操作。
file
允许读写服务器主机上的文件。该权限不应该随便授予,它很危险。
虽然已经授予读写权限,但所写的文件必须不是现存的文件,
这防止你迫使服务器重写重要文件,如/etc/passwd或属于别人的数据库的数据目录。
如果授权file权限,确保unix不以root用户运行服务器,因为root可在文件系统的任何地方创建新文件。
如果你以一个非特权用户运行服务器,服务器只能该给用户能访问的目录中创建文件。
grant
允许将自己的权限授予别人,包括grant。
process www.111cn.net
允许通过使用show process语句或mysqladmin process命令查看服务器内正在运行的线程(进程)的信息。
这个权限也允许你用kill语句或mysqladmin kill命令杀死线程。
你同样可以看到或杀死你自己的线程。
process权限赋予了你对任何线程做这些事情的权力。
reload
允许执行大量的服务器管理操作。
你可以发出flush语句,
你也能执行mysqladmin的reload、refresh、flush-hosts、flush-logs、flush-privileges和flush-tables等命令。
shutdown
允许用mysqladmin shutdown关闭服务器。
用户权限
实例:
例如:
指定用户访问,设置访问密码,指定访问主机。
① 设置访问单个数据库权限
01.mysql>grant all privileges on test.* to 'root'@'%';(说明:设置用户名为root,密码为空,可访问数据库test)
②设置访问全部数据库权限
01.mysql>grant all privileges on *.* to 'root'@'%';(说明:设置用户名为root,密码为空,可访问所有数据库*)
③设置指定用户名访问权限
01.mysql>grant all privileges on *.* to 'lanping'@'%';(说明:设置指定用户名为 lanping ,密码为空,可访问所有数据库*)
④设置密码访问权限
01.mysql>grant all privileges on *.* to 'lanping'@'%' identified by ' lanping';(说明:设置指定用户名为 lanping ,密码为 lanping ,可访问所有数据库*)
⑤设置指定可访问主机权限
01.mysql>grant all privileges on *.* to ' lanping '@'10.2.1.11';说明:设置指定用户名为 lanping ,可访问所有数据库*,只有127.0.0.1这台机器有权限访问
revoke
revoke和作用和grant相反,语法格式为:
revoke privileges on 数据库名[.表名] from user_name
例如:
创建用户bob,密码为“bob”,但不给他任何权限:
grant usage on * to bob identified by ’bob’;
授予bob在books数据库中的查询和插入权限:
grant select, insert on books.* to bob;
取消bob在books数据库中的所有权限:
revoke all on books.* from bob;
注:需要指出的是,revoke all...仅仅是回收用户的权限,并不删除用户。在mysql中,用户信息存放在mysql.user中。mysql可以通过drop user来彻底删除一个用户,其用法为:
drop user user_name;
例如,要删除用户bob,可以用:
drop user bob;
你可能感兴趣的文章mysql权限提升及安全限制绕过漏洞如何在win系统下给mysql分配权限mysql数据库设置远程访问权限方法总结mysql启用skip-name-resolve出现warning及用户权限错误解决办法mysql grant,revoke用户权限管理用法介绍mysql修改用户密码并设置用户权限mysql grant查看用户权限命令mysql修改用户密码及权限限制设置mysql给用户加库操作权限如何给mysql用户分配权限bitscn.com