mysql 访问控制和用户管理

mysql 访问控制和用户管理

目的:确保数据的安全。用户的访问权限不能多也不能少。

root对数据库有完全的控制。

在日常工作中,不要使用root,而是使用有限权限的一系列账户,根据使用者的身份,给予不同的权限。

select user(); 查看当前用户;

SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;

设定了一个查看所有的用户的格式:简单的写法是select user, host from mysql.user;

备注: mysql数据库有一个user表,  储存了user的信息。

创建用户

详细见文档:http://www.mysqltutorial.org/mysql-create-user.aspx

CREATE USER ‘username‘@‘hostname‘ IDENTIFIED BY ‘password‘; 
  • username是创建的用户名
  • hostname是可选的。可以localhost, 具体的ip地址,或通配符%代表任意ip地址。
  • identified by后面的‘password‘可以是空字符串,代表无密码。

创建完成后,退出控制台后,再使用mysql -u username -p进入

后续,

  • create database xxx
  • use xxx
  • create table lists (...);

再然后是重要的grant,授权:

详细见文档:http://www.mysqltutorial.org/mysql-grant.aspx

grant xxx on *.* to [email protected];  #批准xxx功能 (所有数据库的所有表)给testuser(这是在root中授权的)

create user创建的用户只能登陆 MySQL Server, 不能做其他事情。只有做了相关授权后,才行。

*.*表示:数据库名.表名

例子:

grant select on test2.* to [email protected];

show grants for [email protected]

显示一个用户的特权。

mysql> show grants for [email protected];
+-----------------------------------------------+
| Grants for [email protected]                |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `test_user`@`localhost` |
+-----------------------------------------------+

usage表示根本没有权限。

rename user [email protected] to [email protected];

改名。

revoke xxx on *.* from [email protected]

撤销某个功能的使用权限。

revoke select on test2.* from [email protected];

各种权限可以看权限表。

删除用户

  1. 进入root
  2. select concat(user, host) from mysql.user; 查看mysql数据库中的user表格。
  3. 然后选择要删除的用户, drop user [email protected]
  4. 同时授权也删除了

更改用户登陆密码

改之前要留意:

  • 谁在用这个账户。
  • 什么应用程序被这个账户操作?If you change the password without changing the connection string of the application that is using the user account, the application will not be able to connect to the database server.

2种方法:

  1. set password for [email protected] = "123456"
  2. ALTER USER [email protected] IDENTIFIED BY ‘littlewhale‘;

http://www.mysqltutorial.org/mysql-changing-password.aspx

原文地址:https://www.cnblogs.com/chentianwei/p/12106161.html

时间: 2024-11-09 19:22:58

mysql 访问控制和用户管理的相关文章

mysql中的用户管理

由于工作的需要,要新建一个mysql的用户,在查阅了mysql的手册之后,做了如下的一些方法记录. #新增一个mysql用户custom,密码为obscure,只能从本机访问和操作数据库testGRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP on test.* TO 'custom'@'localhost' IDENTIFIED by 'obscure';#执行完成后会发现user表中多了一条记录,db表中也多了一条记录,并且权限是写入db表的 GRA

MySQL数据库的用户管理、数据库备份与恢复

MySQL 是一个真正的多线程.多用户的 SQL 数据库服务,凭借其高性能.高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统.在2008年以前,MySQL 项目由 MySQL AB 公司进行开发.发布和支持,之后历经 Sun 公司收购 MySQL AB 公司,Oracle 公司收购 Sun 公司的过程,目前 MySQL 项目由 Oracle 公司负责运营和维护. MySQL 数据库的用户管理 新建用户mysql -u root -p ##登录数据库use mysql; ##进入m

【MySQL笔记】用户管理

1.账户管理 1.1登录和退出MySQL服务器 MySQL –hhostname|hostIP –P port –u username –p[password] databaseName –e "SQL语句" -h               -h主机名或ip -P               -Pport[3306] -u               -u[username] -p               -p[password]                 注:之间都没有空

关系型数据库之Mysql引擎-日志-用户管理(三)

MySQL锁机制      相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制. 执行操作时施加的锁的模式    读锁:用户在读的时候施加的锁,为防止别人修改,但是用户可以读,还被称为共享锁    写锁:独占锁,排它锁.其他用户不能读,不能写 MySQL大致可归纳为以下3种锁:    表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低.    行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度

MySQL的访问控制与用户管理

MySQL服务器的安全基础是用户应该对他们需要的数据具有适当的访问权,既不能多也不能少.管理访问控制需要创建和管理用户账号. 使用MySQL Administrator,MySQL Administrator提供了一个图形用户界面,可以用来管理用户及账号权限. 防止无意的错误,访问控制的目的不仅仅是防止用户的恶意企图.数据梦魇更为常见的是无意识的错误的结果,如打错MySQL语句,在不合适的数据库中操作或其它一些用户错误.通过保证用户不能执行它们不应该执行的语句,访问控制有助于避免这些情况的发生.

MySQL权限和用户管理

Mysql权限系统(由mysql权限表进行控制user和db)通过下面两个方面进行认证: 1)对于连接的用户进行身份验证,合法的通过验证,不合法的拒绝连接. 2)对于通过连接认证的用户,可以在合法的范围内对数据库进行操作. Mysql的权限表在数据库启动时就被载入内存,当用户通过身份认证后,就可以在内存中进行相应的权限存取,对数据库进行相应的操作.在权限存取的过程中,mysql数据库会用到其内部"mysql"数据库的user.db.host权限表.其中最重要的是user权限表,其内容主

Mysql数据库之用户管理

显示Mysql账号 mysql> select user(); +----------------+ | user() | +----------------+ | [email protected] | +----------------+ 1 row in set (0.00 sec) mysql> select user,host from mysql.user; +------+-------------+ | user | host | +------+-------------+

MySQL简单的用户管理

mysql安装后的一点安全策略就是删除空用户和host不为localhost的用户 1.删除空用户 删除空用户 mysql> select mysql.user,host,password from user whereuser='';    查询用户 mysql> delete from user where user='';        #删除user=空的用户 删除host不等于localhost的用户 mysql> select user,host,password from

JavaWeb-SpringBoot_使用MySQL数据库实现用户管理

使用Gradle编译项目 传送门 [未完]1.29傍晚回来整理实现逻辑 用户注册功能  用户登录功能 管理员查询用户界面功能  用户信息回显功能  管理员修改用户信息功能 原文地址:https://www.cnblogs.com/1138720556Gary/p/10329753.html