我的Linux生涯之Mysql:Day04[Mysql之权限管理]
2014-01-03 20:59
302 查看
mysqladmin
[root@localhost ~]# rpm -qf /usr/bin/mysqladmin mysql-5.0.95-3.el5 |
//初始化mysql : rm -rf /var/lib/mysql/mysql
mysql> desc mysql.user; +-----------------------+-----------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+-----------------------------------+------+-----+---------+-------+ | Host | char(60) | NO | PRI | | | //登陆的主机 | User | char(16) | NO | PRI | | | . //用户 | Password | char(41) | NO | | | | //密码 |
shell> mysqladmin -u root -h localhost password "123456" //password是一个函数,将密码通过加密存放在mysql.password内,字段类型为varchar,则须要使用"" mysql> select user,host,password from mysql.user; +------+-----------------------+------------------+ | user | host | password | +------+-----------------------+------------------+ | root | localhost | 565491d704013245 | ....... |
shell> mysqladmin -h SERVERIP/HOSTNAME -u ADMINUSER -p password "密码" Enter password: //输入旧的管理员密码 |
//如果初始化,那么之前所设置的授权就没了。 //可以不让Mysql对密码进行授权库的验证 shell> vim /etc/my.conf [mysqld] .... skip-grant-table //跳过授权表。 .... shell> service mysqld restart //然后更新授权库的密码 mysql> update mysql.user set password=password("321") where user="root" and host="localhost"; //调用password这个函数对"321"进行加密。 mysql> flush privileges; //只要对mysql库下的授权操作时,就一定要刷新 退出mysql,把my.conf文件中的"skip-grant-table"注释掉。 使用新密码登录mysql。 |
Mysql>set password for USERNAME@"CLIENT ADDR" =password("NEWPASSWORD") //Mysql>set password for userweb@"192.168.10.10" =password("123QWE") 授权用户登录后修改自己的密码 Mysql> set password=password("NEWPASSWORD") |
用户授权
(默认情况下,只有数据库管理从服务器本登陆才有用户授权权限)
mysql> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) |
mysql> show grants; +---------------------------------------------------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '7540a8d5245cc2d0' WITH GRANT OPTION | +---------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) GRANT ALL PRIVILEGES *.* //所有库.表拥有完全权限 'root'@'localhost' //连接地址 WITH GRANT OPTION //拥有授权权限 |
mysql> grant 权限列表 on DATANAME to USER@“LOCALHOST” identified by “PASSWORD” with grant option;
权限列表表示:
all 所有权限
select,delete,update 指定有某种权限
select,update(name,sex,age) 指定有某种权限 //对列表
数据库名表示方式:
*.* //服务器上的所有库所有表
数据库名.表名 //某个库下的某个表有权限
数据库.* //某个库里的所有表有权限
USER@"LOCALHOST //管理员授权时自定义的用户(mysql.user),于系统账户无关(/etc/passwd)。
//自定义的用户名要有标识性。
客户端地址:
% //所有主机
192.168.1.% //某个IP地址
HOSTNAME //对于主机名则须保证MYSQL服务器能解析
*.DOMAIN //也可以是区域。
identified by "PASSWORD"
//设置授权用户连接数据库服务器时使用的密码,是可选项,若授权时不写选项用户登录时则没有密码
with grant option; //设置授权用户是否有授权权限,可选项,若不写时则默认没有授权的权限。
如何查看当前数据库服务器上有哪些
查看mysql.user表可以知道。
mysql> select user,host,password from mysql,user; +------+-----------------------+------------------+ | user | host | password | +------+-----------------------+------------------+ | root | localhost | 7540a8d5245cc2d0 | | root | localhost.localdomain | | | root | 127.0.0.1 | | | | localhost | | | | localhost.localdomain | | |
+------+-----------------------+------------------+
mysql> delete from mysql.user where user=(""); Query OK, 2 rows affected (0.00 sec) mysql> show grants for USERNAME; mysql> show grants forUSER@"%" |
//不过用户还是可以创建这个test这个库的。
对库的授权信息记录在mysql.db表内。
对用户的授权信息记录在mysql.user表内。
对表的授权信息记录在mysql.table_priv表内。
对字段的授权信息记录在mysql.columns_priv表内。
当要对某一用户授予授权权限时,也要给予mysql有权限。两者
对字段设置权限
grant select,update(id) on studb.t300[库,表] to USER@LOCALHOST;
//对字段id有update权限
撤销权限
mysql> revoke 权限列表 on 库,表 from USER@"LOCALHOST"; mysql> revoke all on DATA.TAB from USER@"LOCALHOST"; //只是撤销权限,并没有删除该用户。 |
mysql> drop from mysql.user where user=“USERNAME”; mysql> flush privileges; |
给开发人员一个用户,只给予webdb库完全权限。如:
grant all on webdb.* towebuser@"10.10.10.%" identified by "password" ; |
grant all on *.* to root@"192.168.10.22" identified by "password" with grant option; //IP地址是自己的电脑。 |
mysql> select user,host,password from mysql,user; +------+-----------------------+------------------+ | user | host | password | +------+-----------------------+------------------+ | root | localhost | 7540a8d5245cc2d0 | | root | 192.168.10.22 | 7540a8d5245cc2d0 | |webuse| 10.10.10.% | 7540a8d5245cc2d0 | +------+-----------------------+------------------+ mysql> grant all on *.* to root@"192.168.1.100" identified by "20140103" with grant option; Query OK, 0 rows affected (0.00 sec) mysql> revoke grant option on *.* from root@"192.168.1.00"; //只移除授权权限。同样不能授权。 |
环境:
安装APACHE服务,Mysql
php-mysql.x86_64 0:5.1.6-39.el5_8
php-5.1.6-39.el5_8.x86_64.rpm
httpd-2.2.3-74.el5.x86_64.rpm
phpMyAdmin-2.11.11-all-languages.tar.gz
tar -xvf phpMyAdmin-2.11.11-all-languages.tar.gz -C /var/www/html/phpmyadmin/
写一个PHP测试页。test.php
<?php phpinfo(); ?> |
http://localhost/test.php
[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php [root@localhost phpmyadmin]# vim config.inc.php .... 17 $cfg['blowfish_secret'] = 'tarena'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ .... |
http://localhost/phpmyadmin/index.php
相关文章推荐
- 我的Linux生涯之Mysql:Day04[Mysql之权限管理]练习
- Linux命令:MySQL系列之十--MySQL用户和权限管理,mysql管理员密码重置
- 玩玩Linux云主机-安装MySQL ,The server quit without updating PID file,Linux chown 权限管理
- Linux 安装Mysql及权限管理
- 我的Linux生涯之Mysql:Day02[Mysql的基本管理]
- Linux运维 第四阶段 (五)MySQL用户和权限管理、日志管理
- linux下Mysql权限管理过程
- mysql用户和权限管理(Linux系统下)
- 我的Linux生涯之Mysql:Day02[Mysql的基本管理]练习
- 【MySQL】Linux + MySQL 用户权限管理和数据备份(四)
- 搞定linux上MySQL编程(五):MySQL权限管理
- Linux用户管理、权限、权限管理、IO重定向、正则表达day04
- linux下oracle用户、权限与角色管理详解
- Linux教程总结____(1)linux用户组权限管理 详细
- mysql权限管理
- 我的Linux生涯之Mysql:Day03[Mysql之表的操作]练习
- 带您深入了解MySQL权限管理要学习的东西
- Linux文档权限管理
- mysql在Linux环境下开启远程访问权限和开放3306端口
- Linux用户管理与权限