首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想限制用户在mysql中只能执行select命令,不能执行delete、update或insert命令

要限制用户在MySQL中只能执行SELECT命令,不能执行DELETE、UPDATE或INSERT命令,可以通过以下步骤实现:

  1. 创建一个新的MySQL用户:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
  2. 授予该用户只能执行SELECT命令的权限:GRANT SELECT ON database_name.* TO 'username'@'localhost';

其中,database_name是要限制用户访问的数据库名称。

  1. 撤销该用户对DELETE、UPDATE和INSERT命令的权限:REVOKE DELETE, UPDATE, INSERT ON database_name.* FROM 'username'@'localhost';
  2. 刷新MySQL权限:FLUSH PRIVILEGES;

这样,用户就只能执行SELECT命令,而不能执行DELETE、UPDATE或INSERT命令了。

推荐的腾讯云相关产品:腾讯云数据库 MySQL 版(TencentDB for MySQL)

产品介绍链接地址:https://cloud.tencent.com/product/cdb_mysql

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql---用户和权限管理复习

#密码,MD5加密 授权信息 Select_priv:确定用户是否可以通过SELECT命令选择数据 Insert_priv:确定用户是否可以通过INSERT命令插入数据 Update_priv:确定用户是否可以通过...MySQL 5.0及更高版本中有意义 Show_view_priv:确定用户是否可以查看视图了解视图如何执行,此权限只MySQL 5.0及更高版本中有意义 Create_routine_priv:...确定用户是否可以更改放弃存储过程和函数,此权限是MySQL 5.0引入的 Alter_routine_priv:确定用户是否可以修改删除存储函数及函数,此权限是MySQL 5.0引入的 Create_user_priv...需要在mysql的root用户下进行 grant select,insert,update,delete on *.* to test1@”%” identified by “123456″; flush...需要在mysql的root用户下进行 grant select,insert,update,delete on student.* to test2@192.168.2.12 identified by

1.7K30
  • MySQL权限管理 原

    mysql>  grant usage on *.* to 'root′@'localhost' identified by '123'; 该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收...> grant select on pyt.* to p2@localhost; process 通过这个权限,用户可以执行SHOW  PROCESSLIST和KILL命令。...默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。 mysql>  show processlist; all privileges 所有权限。...mysql> grant selectupdatedelete  ,insert  on bzfys_db.*  to  bzfys; 如果立即看到结果使用 flush  privileges ...; 命令更新  设置权限时必须给出一下信息 1,要授予的权限 2,被授予访问权限的数据库表 3,用户名 grant和revoke可以几个层次上控制访问权限 1,整个服务器,使用 grant ALL

    2.1K20

    常用数据库 SQL 命令详解(下)

    函数限制比较多,比如不能用临时表,只能用表变量,还有一些函数都不可用等等,而存储过程的限制相对就比较少 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。...trigger_order:是MySQL5.7之后的一个功能,用于定义多个触发器,使用follows(尾随)precedes(…之先)来选择触发器执行的先后顺序。...:用户的操作权限,如SELECTINSERTUPDATEDELETE等,如果要授予所的权限则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用.../删除】操作权限 grant select,insert,update,delete on *.* to 'testuser'@'localhost'; 3、设置用户远程访问权限 设置用户testuser...,如果让该用户可以授权,用以下命令

    95220

    MySQL学习笔记-进阶部分

    触发器是 insertupdatedelete 命令之前之后对 SQL命令存储过程的自动调用。...进行数据库操作时,经常必须在PHP程序和数据库服务器之间来回传输大量数据的情况:PHP 程序执行一条 select 命令,对查询结果进行某种处理,根据查询结果执行一条 update 命令,返回 last_insert_id...MySQL,一个表相同时间触发事件,只能创建一个触发器,例如在product表,触发事件insert,触发时间为 after 的触发器只能有一个。...注意:触发器不能对本表进行insertupdatedelete操作,以免递归循环触发错误case解决:delimiter $$create trigger trigger_deleteForStudent...解决办法:student表上的触发器里 不能再更新(insertupdatedelete)student表,只能操作其他表。

    40120

    MySQL常用指令

    privileges; //刷新系统权限表 3.5 授权test用户拥有*所有数据库的某些权限:* mysql>grant select,delete,update,create,drop on ....; 例2:创建数据库并分配用户 ①CREATE DATABASE 数据库名; ②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.*...mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59); 注意:insert into每次只能向表插入一条记录...原表名 to 新表名; 例如:表MyClass名字更改为YouClass mysql> rename table MyClass to YouClass; 当你执行 RENAME 时,你不能有任何锁定的表活动的事务...备份数据库 命令DOS的[url=file://\mysql\bin]\mysql\bin[/url]目录下执行 1.导出整个数据库 导出文件默认是存在mysql\bin目录下 mysqldump -

    1.7K20

    MySQL 系列】MySQL 语句篇_DCL 语句

    MySQL 访问权限控制系统的主要功能是对从给定主机连接到 MySQL 服务器的用户进行身份验证,并校验该用户该服务器的数据库对象访问权限(如 SELECTINSERTUPDATEDELETE...常用的包括: ALL, SELECT, UPDATE, DELETE, ALTER, DROP 以及 INSERT 等。...这些权限是全局性的,授权范围不能是特定的数据库数据库对象(只能使用 *.* 方式授予,不能使用 db.* db.tb 方式) |Create user|Event|Process|Proxy|Reload...即,创建临时表的会话可以对该临时表执行任何操作,例如 DROP TABLE、INSERTUPDATESELECT 等操作。... MySQL 5.7 版本,可以使用 secure_file_priv 系统变量限制 File 权限的读写目录。

    16510

    深入理解MySQL触发器

    似乎《高性能MySQL,对触发器作了一定的描述,也提到使用的一些优势和局限性,但感觉还是不能完全理解触发器的全部功能和实现。...使用场合: 触发器是基于事件的,主要的事件也就是MySQL的增删改操作,即insert,delete,update。 2....触发器执行顺序 如果有相同的update(或者delete,insert)触发器,就会按照创建的时间来执行。...show triggers 这个命令只能看到都有哪些的triggers,而看不到trigger的具体信息。...因为触发器对update,delete,insert等事件做了处理,并且是按照before,SQL语句,after的顺序来执行的,一旦某一步出错,就会回滚数据。如果在触发器中使用事务,就会产生矛盾。

    75910

    MySQL权限详解

    按照系统权限划分 1、管理权限 用于管理MySQL服务器的操作。这些权限是全局性的,授权范围不能是特定的数据库数据库对象(只能使用*.*方式授予,不能使用db.*db.tb方式)。...● Trigger ● Update 按照使用经验划分 1、开发权限 ● DeleteInsertSelectUpdate ● Alter ● Create temporary tables...即,创建临时表的会话可以对该临时表执行任何操作,例如DROP TABLE、INSERTUPDATESELECT等操作。...MySQL 5.7版本,可以使用secure_file_priv系统变量限制File权限的读写目录。 ● Grant option:该权限用于授予回收其他用户自己拥有的权限。...另外,使用UPDATEDELETE语句,当使用WHERE子句指定了某字段的条件值时,也需要该字段的SELECT权限;否则,你会发现可以使用UPDATE不带WHERE子句更新全表,却不能使用WHERE语句指定更新某些行记录

    4.2K30

    mysql 命令完全总结 【原创】

    ="localhost"; 3.2 用户权限管理 命令:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 用户名@登录主机...; 4.4 SELECT操作 命令select database(); mysql SELECT 命令类似于其他编程语言的 print write,可用来显示字符串、数字、数学表达式的结果等...table to ; mysql> rename table OldTable to NewTable; 注意:不能有活动的事务对锁定的表操作,须有对原表的 ALTER 和...98.99),(3,'Fent', 97.99); 注意:insert into每次只能插入一条记录 6.2 查询表数据 查询所有行 命令select from < 表名...outfile_name.sql 注意:命令行下执行,导出文件默认是存在 /usr/local/mysql/bin/ 目录下 7.2 导出表 格式:mysqldump -u用户名 -p密码 数据库名

    905110

    MySQL核心知识》第13章:权限管理

    -h参数 -u:用户名 -p:密码,注意:该参数后面的字符串和-p不能有空格 -P:端口号,默认为3306 数据库名:可以命令最后指定数据库名 -e:执行SQL语句,如果指定该参数,将在登录后执行-e...后面的命令sql语句并退出 命令执行完之后返回book表的结构,查询返回之后会自动退出MYSQL 用户 CREATE USER user [IDENTIFIED BY [PASSWORD] 'password...WHERE `User` ='testUser'; 执行结果显示执行成功,使用SELECT语句查询用户testUser的权限 查询结果显示SELECTUPDATE权限字段均为Y 注意:User表的...影响insert语句的执行,使用SELECT语句查看user表的记录 可以看到,插入失败。...删除普通用户 使用DROP USER语句删除用户,也可以直接通过DELETEmysql.user表删除对应的记录来删除用户。DROP USER语句用于删除一个多个MYSQL帐户。

    83920

    一文看尽MySQL用户权限管理,真香!

    用户权限管理主要有以下作用: 可以限制用户访问哪些库、哪些表 可以限制用户对哪些表执行SELECT、CREATE、DELETEDELETE、ALTER等操作 可以限制用户登录的IP域名 可以限制用户自己的权限是否可以授权给别的用户...→ 执行 检验columns_priv,对于特定表的某些列有权限 → 执行 权限分布 可能的设置的权限 表权限 'Select', 'Insert', 'Update', 'Delete', 'Create...创建/授权用户: 有两种方式创建MySQL授权用户 方法一、通过insert语句直接操作MySQL系统权限表(此处不再赘述) 方法二、执行create user/grant命令(推荐) 注意: 试用...、insertdeleteupdate 例如,给"zhangsan" 用户管理员权限,并且允许该用户继续给别的用户赋权限 grant all privileges on *.* to 'zhangsan...如果要指定将权限应用到test库的user表,可以这么写:test.user to:将权限授予哪个用户。格式:”用户名”@”登录IP域名”。%表示没有限制,在任何主机都可以登录。

    10.7K41

    mysql 数据库授权(给某个用户授权某个数据库)

    为了使用GRANT语句设置个用户的权限,运行这些命令: shell> mysql –user=root mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,...权限 列 Context select Select_priv 表 insert Insert_priv 表 update Update_priv 表 delete Delete_priv 表...Process_priv 服务器管理 file File_priv 服务器上的文件存取 1.selectinsertupdatedelete权限 允许你一个数据库现有的表上实施操作,是基本权限...你不能指定一个用户有权创建立抛弃一个数据库的表,也不能创建抛弃数据库本身。 可以同时列出许多被授予的单个权限。...例如,如果用户能读取和修改已有表的内容,但又不允许创建新表删除表,可按如下授权: GRANT SELECT,INSERT,DELETE,UPDATE ON samp_db.* TO ‘user’

    7.9K20
    领券