转自:微点阅读 https://www.weidianyuedu.com
什么是MySQL?
MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。SQL语言使得存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询信息。MySQL的快速和灵活性足以满足一个网站的信息管理工作。数据库与用户端之间的接口程序可以使用CGI进行通信。新网ChinaDNS使用的是 PHP,使用PHP和MySQL这两样东西加在一起,对于开发数据驱动的网站这项工作而言是最佳组合。PHP是一种用于服务器端执行程序解释的脚本语言。如果你接触过ASP的话,那么您对于在HTML页面中嵌入代码应该是比较熟悉了。PHP代码在服务器一端被解释、执行并转变成普通的HTML页面内容,送给浏览器一端。这种模式使得我们可以用它来完成相当复杂的功能。
为什么用MySQL?
现在每一个人的生活几乎都离不开数据库,如果没有数据库,很多事情都会变得非常棘手,也许根本无法做得到。银行、大学和图书馆就是几个严重依赖数据库系统的地方。在互联网上,使用搜索引擎、在线购物甚至是访问网站地址(http://www...)都离不开数据库。一个数据库通常都安装在称为数据库服务器的计算机上。目前市场上运行最快的 SQL (Structured Query Language结构化查询语言) 数据库之一就是MySQL Server,由瑞典的T.c.X. DataKonsultAB公司开发。MySQL可以从http://www.mysql.com/上下载,它提供了其它数据库少有的编程工具,而且 MySQL对于商业和个人用户是免费的。如果想用MySQL开发应用软件,必须支付一定的产品使用许可费用,具体情况可以访问MySQL"s licensing section。
MySQL的功能特点如下:
1. 可以同时处理几乎不限数量的用户;
2. 处理多达50,000,000以上的记录;
3. 命令执行速度快,也许是现今最快的;
4. 简单有效的用户特权系统。
mysql有关权限的表
一、关于MySQL权限的几点常识:
1、MySQL的权限系统主要用来验证用户的操作权限。
2、在MySQL内部,权限信息存放在MySQL数据库的granttable里。当mysql启动后,granttable里的信息会写入内存。
3、MySQL 使用user name 加 host name 来作为标识符。
通过这种标识符,可以用来区分不同host上的相同的user name。
4、MySQL 权限控制有2种策略:
1)根据密码是否正确来控制客户端的连接。
2)假设可以正常connect,server还可以检查每个satement是否有权限去执行。如果只有某张表的select 权限,就不能进行drop 操作。
5、如果用户的权限改变,当前已连接的会话用户不会受影响,下次登录才会生效。
二、关于MySQL的几个有关权限表的含义:
user:用户账号、全局权限
db:库级别权限
host:废弃
tables_priv:表级别权限
colums_priv:列级别权限
procs_priv:存储过程和存储函数相关的权限
proxies_priv:代理用户权限
三、MySQL用户账号的创建规则
用户名@主机
用户名:16字符以内
主机:
主机名:www.test.com,mysql
IP:192.168.2.1
网络地址:192.168.0.0/255.255.0.0
通配符:%,192.168.%.%,%.test.com
四、MySQL的用户权限级别
服务管理类:super
库:CREATE
表:DELETE、ALTER
列:INSERT、SELECT、UPDATE
更多级别可参考MySQL官方文档
五、与权限相关的几个命令
GRANT 权限,... ON [对象类型] db.{table|routine} TO 'username'@'host' [INDENTIFIED BY 'password'];
REVOKE 权限,... ON [对象类型] db.{table|routine} FROM 'username'@'host';
SHOW GRANTS FOR 'username'@'host';
CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
DROP USER 'username'@'host';
RENAME USER old_name TO new_name;
六、权限的操作命令举例
查看当前数据库的所有用户:
select user,host,password from mysql.user;
给用户赋予super权限(super和ALL PRIVILEGES都可以):
GRANT super ON *.* TO 'mysql'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost';
删除用户的super权限(super和ALL PRIVILEGES都可以):
REVOKE super ON *.* FROM 'mysql'@'localhost';
REVOKE ALL PRIVILEGES ON *.* FROM 'mysql'@'localhost';
查看赋予用户的权限
SHOW GRANTS FOR 'mysql'@'localhost';