您的位置:首页 > 数据库 > MySQL

MySQL的用户和权限介绍

2014-11-24 12:43 281 查看
一、关于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,mysqlIP: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'; 七、MySQL的问题处理 1、MySQL登录密码忘记时的恢复操作 启动mysql_safe时传递两个参数:--skip-grant-tables 跳过授权表--skip-networking 为了安全,防止网络登录登录方式一:修改/etc/init.d/mysql

登录方式二:直接在my.cnf配置[mysqld]skip-grant-tablesskip-networking而后修改密码:通过更新授权表方式直接修改其密码,而后移除此两个选项重启服务器UPDATE user SET PASSWORD=PASSWORD('123456') WHERE User='root' 2、客户端连接MySQL数据库速度慢的问题 直接在my.cnf配置,关闭DNS的反向解析参数[mysqld]skip-name-resolve
本文出自 “初来乍到-Jasen” 博客,请务必保留此出处http://shengjian.blog.51cto.com/3022827/1581854
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: