如何在MySQL中创建新用户并授予权限
原作者:Etel Sverdlov 转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql
介绍
MySQL是一种开源数据库管理软件,可帮助用户存储,组织和以后检索数据。它有多种选项可以为表格和数据库中的特定用户授予细微差别的权限 - 本教程将简要介绍一些众多选项。
重点意味着什么
在本教程中,将突出显示用户需要输入或自定义的所有行!其余的应该主要是复制和可接受的。
如何创建新用户
在MySQL教程的第1部分中,我们以root用户身份完成了MySQL中的所有编辑,可以完全访问所有数据库。但是,如果可能需要更多限制,则可以使用自定义权限创建用户。
让我们从在MySQL shell中创建一个新用户开始:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
注意:在本教程中在MySQL shell中添加用户时,我们将指定用户的主机localhost
而不是服务器的IP地址。localhost
是一个主机名,意思是“这台计算机”,MySQL专门处理这个特定的主机名:当有该主机的用户登录MySQL时,它将尝试使用Unix套接字文件连接到本地服务器。因此,localhost
通常在计划通过SSH连接到服务器或运行本地mysql
客户端连接到本地MySQL服务器时使用。
此时,newuser无权对数据库执行任何操作。事实上,即使newuser尝试登录(使用密码,密码),他们也无法访问MySQL shell。
因此,首先要做的是为用户提供他们所需信息的访问权限。
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
此命令中的星号指的是它们可以访问的数据库和表(分别) - 此特定命令允许用户读取,编辑,执行和执行所有数据库和表中的所有任务。
请注意,在此示例中,我们授予newuser对数据库中所有内容的完全root访问权限。虽然这有助于解释一些MySQL概念,但对于大多数用例来说可能是不切实际的,并且可能会使您的数据库的安全性处于高风险。
完成要为新用户设置的权限后,请务必重新加载所有权限。
FLUSH PRIVILEGES;
您的更改现在将生效。
如何授予不同的用户权限
以下是用户可以享受的其他常见可能权限的简短列表。
- 所有特权 - 正如我们之前看到的,这将允许MySQL用户完全访问指定的数据库(或者如果没有选择数据库,则跨系统进行全局访问)
- CREATE-允许他们创建新的表或数据库
- DROP-允许他们删除表或数据库
- DELETE-允许他们从表中删除行
- INSERT-允许它们将行插入表中
- SELECT-允许他们使用该
SELECT
命令读取数据库 - UPDATE - 允许他们更新表行
- GRANT OPTION-允许他们授予或删除其他用户的权限
要为特定用户提供权限,您可以使用此语法框架:
GRANT type_of_permission ON database_name.table_name TO ‘username’@'localhost’;
PS:一条授权命令可以配置多个权限,权限之间用英文逗号隔开
:"GRANT UPDATE, SELECT ON [database name].[table name] TO ‘[username]’@‘localhost’;"
如果要授予它们访问任何数据库或任何表的权限,请确保在数据库名称或表名称的位置放置星号(*)。
每次更新或更改权限时,请务必使用“刷新权限”命令。
如果您需要撤消权限,则语法结构几乎与授予权限相同:
REVOKE type_of_permission ON database_name.table_name FROM ‘username’@‘localhost’;
请注意,在撤消权限时,语法要求您使用FROM
,而不是TO
在授予权限时使用。
您可以通过运行以下命令来查看用户的当前权限:
SHOW GRANTS username
就像您可以使用DROP删除数据库一样,您可以使用DROP完全删除用户:
DROP USER ‘username’@‘localhost’;
要测试新用户,请键入以下内容注销:
quit
并在终端中使用此命令重新登录:
mysql -u [username] -p
结论
完成本教程后,您应该了解如何添加新用户并在MySQL数据库中授予他们各种权限。从这里开始,您可以继续探索和试验数据库的不同权限设置,或者您可能希望了解有关某些更高级别MySQL配置的更多信息。
有关MySQL基础知识的更多信息,我们建议您查看以下教程:
- 如何在MySQL中导入和导出数据库并重置root密码
- 如何在两个服务器之间迁移MySQL数据库
- 如何在MySQL中设置主从复制:(译文:https://blog.csdn.net/Aria_Miazzy/article/details/84872388)
如何在MySQL中创建新用户并授予权限相关推荐
- 如何在mysql中创建连接_如何在MySQL中创建新用户并开启远程连接访问?
如何在MySQL中创建新用户并开启远程连接访问? 发布时间:2020-05-21 14:55:19 来源:亿速云 阅读:176 作者:鸽子 下面由mysql教程给大家介绍MySQL创建新用户并开启远程 ...
- 如何在 MySQL 中创建超级用户
如何在 MySQL 中创建超级用户? 本指南将引导您完成在 MySQL 中创建新用户并使其成为具有类似于 root 的数据库访问权限的超级用户的步骤. 1.首先,你必须使用具有CREATE USER权 ...
- 如何在Windows中创建新用户?
在Windows 8和10中创建用户 打开控制面板. 单击" 用户帐户". 点击管理其他帐户. 在窗口底部附近,单击" 在PC设置中添加新用户". 单击+以添加 ...
- 如何在MySQL中创建新的数据库(windows下)
一.首先确保已经安装好MySQL, 如果还没有安装也没关系,可以参考:https://blog.csdn.net/beyond_f4/article/details/79894234 二.window ...
- mysql中用户权限的授予_如何在MySQL中创建用户和授予权限
如何创建MySQL用户并授予权限?为了实现良好的安全性,需要为每个应用程序创建单独的用户帐户,而不是root用户访问数据库.这将确保应用程序无法访问其他应用程序的数据库.因此需要mysql管理员(ro ...
- 如何在mysql中创建过程_如何在MySQL 中创建存储过程?
问题阐述 自MySQL 5.0 开始,MySQL 就支持存储过程.存储过程是一些被用户定义的SQL 语句集合.一个存储程序是可以被存储在服务器中的一套SQL 语句.存储过程可以被程序.触发器或另一个存 ...
- asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...
- ef mysql 数据模型,EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- 计算机如果添加新用户名,怎么在电脑中创建新用户
怎么在电脑中创建新用户 我们在使用电脑的时候,一般是会设置账号并添加密码的,今天小编跟大家分享的是怎么在电脑中创建新用户. 具体如下: 1. 首先我们打开电脑,然后点击左下方开始图标,在打开的窗口中点 ...
最新文章
- 用python画皮卡丘教程-利用Python绘制萌萌哒的皮卡丘
- 原 Ubuntu使用VNC运行基于Docker的桌面系统
- Linux内核源代码分析——Linux内核的入口
- 面试常备题---插入排序
- java redis3.0_Java + Redis(第三章)
- 51Nod1601 完全图的最小生成树计数 Trie Prufer编码
- 4k显卡视频测试软件,4K分辨率下体验测试
- 数学建模可以用python_数学建模可以用Python吗
- 思科交换机配置trunk模式及vtp
- (XWZ)的Python学习笔记Ⅴ——I/O编程
- asp微信点餐系统源码,asp扫码点餐代码,支持连接飞鹅云打印机
- 微信小店和微信小商店的区别?如何建立怎么开通?
- 程序员最喜欢的4个编辑器!码农出品,必属精品!
- Raid磁盘阵列重建后如何恢复原来的数据
- 2021年初oracle最新版本是多少_Oracle升级该怎么选版本
- 值得收藏-装修攻略全
- 《设计模式之禅(第三版)》 摘录篇-------依赖倒置原则
- 8代主板装服务器系统,微星B365主板搭配intel 8代cpu安装win7及bios设置教程
- 【Paper】2018_Nonlinear finite-time consensus-based connected vehicle platoon control under fixed and sw
- Java + JS实现微信分享功能
热门文章
- jQuery 去除表单空值 serialize how to eliminate empty fields
- JavaScript 文件拖拽上传插件 dropzone.js 介绍
- UIControl IOS控件编程
- linux 程序运行出错的时候,如何进行调试动态库
- LeetCode 594. Longest Harmonious Subsequence
- LeetCode 66. Plus One
- 【ffmpeg】基本使用方法总结
- Date java 1614619219
- 30.课时30.【Django模板】autoescape标签使用详解(Av61533158,P30)
- 技术讲坛新模式,积分制