MySQL 账户管理(了解)

数据库优化 学习笔记

一、账户管理


  • 在生产环境下操作数据库时,绝对不可以使用 root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的 crud.

  • MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几:

    1. 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表;
    2. 数据库级别账号: 对特定数据库执行增删改查的所有操作;
    3. 数据表级别账号: 对特定表执行增删改查等所有操作;
    4. 字段级别的权限: 对某些表的特定字段进行操作;
    5. 存储程序级别的账号: 对存储程序进行增删改查的操作.
  • 账户的操作主要包括创建账户、删除账户、修改密码、授权权限等.



二、授予权限


        需要使用实例级账户登录后操作,以 root 为例,主要操作包括: 查看所有用户 , 修改密码 , 删除用户

2.1、查看所有用户

  • 所有用户及权限信息存储在 mysql 数据库的 user 表中
  • 查看 user 表的结构
	desc user;
  • 主要字段说明:
    1. Host 表示允许访问的主机
    2. User 表示用户名
    3. authentication_string 表示密码,为加密后的值
	select host,user,authentication_string from user;

2.2、创建账户、授权账户

  • 需要使用实例级账户登录后操作,以 root 为例
  • 常用权限主要包括:create、alter、drop、insert、update、delete、select
  • 如果分配所有权限,可以使用 all privileges

2.3、创建账户 & 授权

        语法:

	-- 其中 "访问主机" , 是指使用什么地址进行访问
	grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

  • 示例1
    创建一个 laowang 的账号,密码为 123456 ,只能通过本地访问, 并且只能对 jd 数据库中的所有表进行 操作
	-- step1:使用root登录
	mysql -uroot -p
	-- 回车后写密码,然后回车

	-- step2:创建账户并授予所有权限
	grant select on jd.* to 'laowang'@'localhost' identified by '123456';

	-- 说明:
		-- 可以操作python数据库的所有表,方式为: jd.*
		-- 访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
		-- 访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
	
	-- step3:刷新权限
	flush privileges;
	
	-- step4:查看用户有哪些权限
	show grants for laowang@localhost;

	-- step5:退出root的登录
	quit
	
	-- step6:使用laowang账户登录
	mysql -ulaowang -p
	-- 回车后写密码,然后回车

	-- step7:对数据库进行操作测试
	-- 查看数据库, 发现只能看到 系统默认的 和 运行操作的 数据库
	show databases;
	-- 进行可以操作的数据库, 尝试对标进行操作, 测试结果

  • 示例2
    创建一个 laoli 的账号,密码为 12345678 ,可以任意电脑进行链接访问, 并且对 jd 数据库中的所有表拥有 所有 权限
	grant all privileges on jd.* to "laoli"@"%" identified by "12345678"
发布了85 篇原创文章 · 获赞 0 · 访问量 1260

猜你喜欢

转载自blog.csdn.net/qq_43621629/article/details/103655996