首页 > 数据库 >mysql新建库&用户&授权

mysql新建库&用户&授权

时间:2023-11-03 14:37:33浏览次数:35  
标签:新建 数据库 用户 数据表 授予 特定 mysql 授权 权限

1.创建数据库

CREATE DATABASE ccsacldb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2.创建用户

CREATE USER 'usr_ccsacl'@'%' IDENTIFIED BY '1qaz@WSX';

3.授权

# 开发者权限
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP ON ccsacldb.* TO 'usr_ccsacl'@'%';
# 如果想要给用户加grant的权限,必须加上WITH GRANT OPTION
# 所有权限(慎用)
GRANT ALL PRIVILEGES ON *.* TO 'usr_ccsacl'@'%' WITH GRANT OPTION;

拓展

GRANT
<权限类型> [ ( <列名> ) ] [ , <权限类型> [ ( <列名> ) ] ]
ON <对象> <权限级别> TO <用户>
其中<用户>的格式:
<用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>
[ WITH GRANT OPTION]
| MAX_QUERIES_PER_HOUR <次数>
| MAX_UPDATES_PER_HOUR <次数>
| MAX_CONNECTIONS_PER_HOUR <次数>
| MAX_USER_CONNECTIONS <次数>

授予数据库权限时,<权限类型>可以指定为以下值:

ALL 或 ALL PRIVILEGES:表示以上所有权限。
SELECT:表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
INSERT:表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETE:表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATE:表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES:表示授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE:表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTER:表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
SHOW VIEW:表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
INDEX:表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
DROP:表示授予用户可以删除特定数据库中所有表和视图的权限。
CREATE VIEW:表示授予用户可以在特定数据库中创建新的视图的权限。
LOCK TABLES:表示授予用户可以锁定特定数据库的已有数据表的权限。
EXECUTE ROUTINE:表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
CREATE TEMPORARY TABLES:表示授予用户可以在特定数据库中创建临时表的权限。
CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。

授予表权限时,<权限类型>可以指定为以下值:

SELECT:授予用户可以使用 SELECT 语句进行访问特定表的权限。
INSERT:授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限。
DELETE:授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限。
DROP:授予用户可以删除数据表的权限。
UPDATE:授予用户可以使用 UPDATE 语句更新特定数据表的权限。
ALTER:授予用户可以使用 ALTER TABLE 语句修改数据表的权限。
REFERENCES:授予用户可以创建一个外键来参照特定数据表的权限。
CREATE:授予用户可以使用特定的名字创建一个数据表的权限。
INDEX:授予用户可以在表上定义索引的权限。
ALL 或 ALL PRIVILEGES:所有的权限名。

授予列权限时,<权限类型>的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限后面需要加上列名列表 column-list。

最有效率的权限是用户权限
授予用户权限时,<权限类型>除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:

CREATE USER:表示授予用户可以创建和删除新用户的权限。
SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。

WITH GRANT OPTION的作用

# 数据库添加用户语句:
grant all privileges on testdb.* to 'test_user'@'localhost' identified by '密码' with grant option;

# WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。
# 如果不想这个用户有这个grant的权限,可以不加这句

4.刷新权限

FLUSH PRIVILEGES;

逆风的方向,更适合飞翔,我不怕千万人阻挡,只怕自己投降。



标签:新建,数据库,用户,数据表,授予,特定,mysql,授权,权限
From: https://blog.51cto.com/u_14346538/8168787

相关文章

  • centos7源码安装MySQL 5
    安装前准备检查系统是否安装过mysql:rpm-qa|grepmysql查询所有mysql对应的文件夹,(人工判断不需要后)删除:whereismysqlfind/-namemysql卸载CentOS7系统自带mariadb:#查看系统自带的Mariadbrpm-qa|grepmariadb#卸载系统自带的Mariadbrpm-e--nodepsmariadb-libs#删......
  • mysql创建systemd管理项
    vim/usr/lib/systemd/system/mysqld.service写入system配置:[Unit]Description=MySQLServerDocumentation=mysqld##mysql参考手册Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-u......
  • MySQL 数据库 cpu 飙升的话,要怎么处理?
    排查过程:(1)使用top命令观察,确定是mysqld导致还是其他原因。(2)如果是mysqld导致的,showprocesslist,查看session情况,确定是不是有消耗资源的sql在运行。(3)找出消耗高的sql,看看执行计划是否准确,索引是否缺失,数据量是否太大。处理:(1)kill掉这些线程(同时观察cpu使用率是......
  • mysql sql常用优化
    1 explain输出执行计划,检查orderby和where后边的字段是否建立索引2in()中的列不应过多,notin和in()数据过多都不再走索引,使用全表扫描,连续数值可以使用between1and33select后边指定字段,少用select(*)4 where子句中避免isnull/isnotnull5 应尽量避免在whe......
  • Mysql 唯一联合索引和 NULL允许重复
    我内心一直认为UNIQUEKEY是唯一的只允许出现一个null但是联合索引索引就打破了这个魔咒请看演示为null原因唯一索引的作用是确保组成索引的字段的值是唯一的。users唯一索引是由name、email和lebal字段组成的。users这三个字段的组合在表中已经存......
  • 安装MySQL初始化问题由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可
    1.关于安装MySQL初始化遇到的问题出现的是如下图错误 这是安装mysql-8.0.25初始化的时候我遇到的报错解决方法如下:安装微软常用运行库合集[下载地址,没有积分的可以评论区联系我](https://download.csdn.net/download/qq_42603590/19686518)安装好之后就不会报错了好了之......
  • 63.mysql8.0.22安装
    网址:https://dev.mysql.com/downloads/MySQLCommunityServerLinux-Generic1)切换到/data目录下2)创建mysql文件夹mkdirmysql83)切换到mysql文件夹下4)解压下载好的mysql8安装包5)重命名解压出来的文件夹,这里改成mysqlmvmysql-8.0.22mysql86)/data文件夹下创建d......
  • mysql误删数据恢复
    1,是否有备份,可以从备份里边恢复,2、通过工具从数据库binlog日志恢复(前提开始binlog日志功能)。使用my2sql工具进行恢复官网地址:https://github.com/liuhr/my2sql按照官网操作编译,或者直接下载编译好的工具如图所示 将下载好的my2sql的工具 上传到/usr/local/bin目录下 赋......
  • mysql/mariadb上建立新用户并设置远程连接
    mysql/mariadb上建立新用户并设置远程连接 没有做之前总觉得很麻烦,真的做下去了一边上网搜索一边做结果还是很简单的。。想来在LINUX下也是一样吧,最主要的就是之前的安装软件。。。2023年11月03日测试 ,用的mariadb11.1.2,服务器上安装好后命令行下连接 mysql-uroot......
  • 新建远程分支
    1.gitbranch-r【查看远程端的分支情况】2.gitcheckout-bdev【在当前已有的分支下创建新的分支,比如:当前拉取下来的代码是master分支,现通过本行代码创建了一个dev分支,并且当前本地已经切换到dev分支下】注意:此时远程仓库上并没有新建的dev分支3.gitp......