mysql权限的各种问题

来源:互联网 发布:程序员叫美女什么 编辑:程序博客网 时间:2024/05/01 23:43

1.查看mysql所有用户的权限

select * from mysql.user\G;

select * from mysql.tables_priv\G;某用户对某张表的权限

2.权限的crud

1. 新增用户

  1. mysql>insert into mysql.user(Host,User,Passwordvalues("localhost","admin",password("123456"));  
  2. mysql>flush privileges
2. 修改用户密码

  1. mysql>update mysql.user set password=password('new password'where User="admin" and Host="localhost";  
  2. mysql>flush privileges;
3. 删除用户

  1. mysql>DELETE FROM user WHERE User="admin" and Host="localhost";  
  2. mysql>flush privileges

4. 权限分配

    4.1. grant用法

            grant 权限 on 数据库.* to 用户名@'登录主机' identified by '密码'

  1. 权限:  
  2.     常用总结, ALL/ALTER/CREATE/DROP/SELECT/UPDATE/DELETE  
  3. 数据库:  
  4.      *.*                    表示所有库的所有表  
  5.      test.*                表示test库的所有表  
  6.      test.test_table  表示test库的test_table表       
  7. 用户名:  
  8.      mysql账户名  
  9. 登陆主机:  
  10.      允许登陆mysql server的客户端ip  
  11.      '%'表示所有ip  
  12.      'localhost' 表示本机  
  13.      '127.0.0.1' 特定IP  
  14. 密码:  
  15.       账户对应的登陆密码  
4.2 例子

  1. mysql>grant all  on test.* to admin@'%' identified by '123456';  
  2. mysql>flush privileges
新增密码为'123456'的用户admin对test库拥有所有操作权限,并不限制用户的登陆IP。

5. 来几个例子

          mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by '123′;
          给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

          mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by '123′;
          给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

          mysql>grant all privileges on *.* to joe@10.163.225.87 identified by '123′;
          给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

          mysql>grant all privileges on *.* to joe@localhost identified by '123′;
          给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

          添加用户所有权限:
          grant all on *.* to 'linjia'@'%' identified by 'pwd' with grant option ;

          添加用户,指定数据库,同时开放增、删、改、查权限:
          grant select,insert,update,delete on db_name.* to 'linjia'@'%' identified by 'pwd';

          删除用户:
          DELETE FROM mysql.user WHERE USER='linjia' AND HOST='%' ;
          DELETE FROM mysql.db WHERE USER='linjia' AND HOST='%' ;
          DELETE FROM mysql.tables_priv WHERE USER='linjia' AND HOST='%' ;
          DELETE FROM mysql.columns_priv WHERE USER='linjia' AND HOST='%' ;
          DELETE FROM mysql.procs_priv WHERE USER='linjia' AND HOST='%' ;

注:在以上执行完成之后,要让其生效,必须再执行flush privileges; 才能生效。


3.开启权限对远程操作数据库很有用
0 0
原创粉丝点击