MySQL的权限有哪些
1 usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
2 select
必须有select的权限,才可以使用select table
3 create
必须有create的权限,才可以使用create table
4 create routine
必须具有create routine的权限,才可以使用{create |alter|drop} {procedure|function}
5 create temporary tables
必须有create temporary tables的权限,才可以使用create temporary tables
6 create view
必须有create view的权限,才可以使用create view
7 create user
要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
8 insert
必须有insert的权限,才可以使用insert into … values…
9 alter
必须有alter的权限,才可以使用alter table
10 alter routine
必须具有alter routine的权限,才可以使用{alter |drop} {procedure|function}
11 update
必须有update的权限,才可以使用update table
12 delete
必须有delete的权限,才可以使用delete from …where…(删除表中的记录)
13 drop
必须有drop的权限,才可以使用drop database db_name; drop table tab_name;
14 show database
通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。
15 show view
必须拥有show view权限,才能执行show create view。
16 index
必须拥有index权限,才能执行[create |drop] index
17 excute
执行存在的Functions,Procedures
18 lock tables
必须拥有lock tables权限,才可以使用lock tables
19 references
有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
20 reload
必须拥有reload权限,才可以执行flush [tables | logs | privileges]
21 replication client
拥有此权限可以查询master server、slave server状态。
22 replication slave
拥有此权限可以查看从服务器,从主服务器读取二进制日志。
23 Shutdown
关闭MySQL
24 grant option
拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)
25 file
拥有file权限才可以执行 select into outfile和load data infile…操作
26 super
这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。
27 process
通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
1,sqlyog客户端,用root用户远程链接mysql时,提示“访问被拒绝”,在网上搜索了一下原因。
原来是mysql没有授权其远程链接,所以你只能在客户端里面链接。
怎么解决呢?
原表数据
mysql> use mysql
mysql> select Host,User,Password from user ;
+---------------+---------+-------------------------------------------+
| Host | User | Password |
+---------------+---------+-------------------------------------------+
| localhost | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| www | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| 127001 | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| ::1 | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
创建一个新用户
格式:grant 权限 on 数据库名表名 to 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on to komiles@12345689 identified by "komiles1234";
执行完上面语句后,再执行
mysql> select Host,User,Password from user ;
+---------------+---------+-------------------------------------------+
| Host | User | Password |
+---------------+---------+-------------------------------------------+
| localhost | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| www | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| 127001 | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| ::1 | root | DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |
| 12345689 | komiles | 50663F1ECEAB844897BC272EC1AE7E83F442F649 |
+---------------+---------+-------------------------------------------+
此时,就可以用你刚才创建的用户进行远程访问了。
以下是转载http://wwwcnblogscom/smallstone/archive/2010/04/29/1723838html
2、实现远程连接(授权法)
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;
将权限改为ALL PRIVILEGES
mysql> use mysql;
Database changed
mysql> grant all privileges on to root@'%' identified by "root";
Query OK, 0 rows affected (000 sec)
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 192168112 | root | 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| % | root | 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+--------------+------+-------------------------------------------+
3 rows in set (000 sec)
这样机器就可以以用户名root密码root远程访问该机器上的MySql
3、实现远程连接(改表法)
use mysql;
update user set host = '%' where user = 'root';
这样在远端就可以通过root用户访问Mysql
1 授权用户root使用密码jb51从任意主机连接到mysql服务器:
代码如下:
GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
flush privileges;
2授权用户root使用密码jb51从指定ip为218125060的主机连接到mysql服务器:
代码如下:
GRANT ALL PRIVILEGES ON TO 'root'@'218125060' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
flush privileges;
第1步:打开phpMyAdmin,点击菜单栏的用户按钮,进入用户管理页面。
第2步:用户管理页面列出了现有用户信息,点击添加用户创建新用户。
第3步:输入用户名User name。有两个选项:任意用户、使用文本域,它们之间没有明显区别,推荐选择“使用文本域”,然后在文本框中输入用户名,如sky。
第4步:输入主机Host信息。这里有四个选项:任意主机(%)、本地( localhost)、使用主机表(host)、Use text field(即使用文本域)。
任意主机表示匹配所有主机;本地表示仅限本地主机(默认填写localhost);使用主机指以MySQL数据库中的host表中的数据为准,不需填写任何信息(如果填写则此选项无效);使用文本域表示自行填写主机地址信息。此处选择“本地”选项。
第5步:输入密码和Re-type(确认密码)。有两个选项:无密码、使用文本域。此处选择“使用文本域”,可以手动输入密码,也可以点击生成按钮,自动生成密码并在最下方文本框中显示。
第6步:为用户分配权限。权限管理分为两大块:用户数据库和全局权限。
用户数据库包括两个选项:创建与用户同名的数据库并授予所有权限;给以用户名_开通的数据库授予所有权限。可根据需要自行选择。此处两个都未选,仅创建新用户。
全局权限包括四部分:数据、结构、管理和资源限制。可根据需要自行选择。这里我选择了“全选”。
第7步:权限分配好后,点击右下角的执行按钮,执行创建新用户操作。
2 编辑用户权限
第1步:进入phpMyAdmin用户管理页面,我们可以看到刚才创建的用户sky,如图所示。
第2步:点击用户sky对应的编辑权限按钮,进入编辑页面。
第3步:根据需要修改勾选权限选项后,点击执行按钮保存修改。
3 修改用户信息
第1步:用户的用户名、主机、密码等信息的修改也在“编辑权限”页面。所以首先也要点击用户sky对应的编辑权限按钮,进入编辑页面。
第2步:修改用户信息主要涉及“修改密码”和“修改登录信息/复制用户”两块,分别填写相应内容,并点击对应的执行按钮完成操作即可。
4 删除用户
第1步:进入phpMyAdmin用户管理页面,选中需要删除的用户,以sky为例。
第2步:点击右下角的执行按钮,删除用户sky。如果创建用户时选择了“创建与用户同名的数据库并授予所有权限”选项,则可以勾选删除选中的用户模块中的“删除与用户同名的数据库”,将数据库和用户一起删除。
0条评论