news 2026/4/16 19:08:15

GRANT SELECT, DELETE ON 职工 TO USER1 WITH GRANT OPTION权限授予命令详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GRANT SELECT, DELETE ON 职工 TO USER1 WITH GRANT OPTION权限授予命令详解

一、语句结构分解

GRANT SELECT, DELETE ON 职工 TO USER1 WITH GRANT OPTION;

各部分含义:

部分含义
GRANT授权命令关键字
SELECT, DELETE授予的权限类型
ON 职工权限作用的对象(职工表)
TO USER1权限授予的用户
WITH GRANT OPTION特殊权限选项

二、授予的具体权限

1.SELECT 权限

USER1 可以:

-- 可以执行所有查询操作SELECT*FROM职工;SELECT姓名,年龄FROM职工WHERE性别='男';SELECTCOUNT(*)FROM职工;

2.DELETE 权限

USER1 可以:

-- 可以删除记录DELETEFROM职工WHERE职工号='001';DELETEFROM职工WHERE年龄>60;

3.WITH GRANT OPTION 权限(最关键!)

USER1 可以:

-- 把自己获得的权限再授予别人GRANTSELECTON职工TOUSER2;GRANTDELETEON职工TOUSER3;GRANTSELECT,DELETEON职工TOUSER4WITHGRANTOPTION;-- 甚至可以传递授权权

三、权限层次关系图

管理员(执行原始语句) ↓ USER1(获得:SELECT, DELETE + 授权权) ↓ ↓ ↓ USER2 USER3 USER4 (SELECT)(DELETE)(SELECT+DELETE+授权权)

注意:USER4 因为有WITH GRANT OPTION,可以继续授权给 USER5、USER6…


四、实际应用场景

场景1:部门主管管理权限

-- 管理员授予销售主管权限GRANTSELECT,INSERT,UPDATE,DELETEON销售订单TO销售主管WITHGRANTOPTION;-- 销售主管可以给下属授权GRANTSELECTON销售订单TO销售员1;GRANTSELECT,INSERTON销售订单TO销售员2;

场景2:项目协作

-- 项目经理需要管理项目表GRANTALLON项目表TO项目经理WITHGRANTOPTION;-- 项目经理给团队成员授权GRANTSELECTON项目表TO开发人员;GRANTSELECT,UPDATEON项目表TO测试人员;

五、重要注意事项

1.权限范围限制

USER1 只能:

  • 授予自己已经拥有的权限
  • 授予的权限不能超过自己的权限范围
-- 假设USER1只有SELECT和DELETE权限GRANTINSERTON职工TOUSER2;-- ❌ 失败!USER1没有INSERT权限

2.权限回收问题

-- 如果管理员回收USER1的权限REVOKESELECT,DELETEON职工FROMUSER1CASCADE;-- CASCADE选项会级联回收所有USER1授予的权限-- USER2、USER3等从USER1获得的权限也会被自动回收

3.安全风险

WITH GRANT OPTION可能导致:

  • 权限泛滥:权限被无限传递
  • 管理混乱:难以追踪权限流向
  • 回收困难:需要级联回收

六、不同权限组合示例

只读权限(无授权权):

GRANTSELECTON职工TOUSER1;-- 只能查询,不能授权给他人

读写权限(无授权权):

GRANTSELECT,INSERT,UPDATE,DELETEON职工TOUSER1;

完全控制(有授权权):

GRANTALLPRIVILEGESON职工TOUSER1WITHGRANTOPTION;

七、查看权限信息

1.查看自己的权限:

-- MySQLSHOWGRANTS;SHOWGRANTSFORUSER1;-- SQL ServerSELECT*FROMsys.fn_my_permissions('职工','OBJECT');-- OracleSELECT*FROMUSER_TAB_PRIVS;

2.查看所有用户权限:

-- MySQLSELECT*FROMmysql.tables_privWHERETable_name='职工';-- SQL ServerSELECT*FROMsys.database_permissions;

八、最佳实践建议

  1. 最小权限原则:只授予必要的最小权限
  2. 谨慎使用 WITH GRANT OPTION:只在确实需要权限委派时使用
  3. 定期审计权限
    -- 定期检查谁有授权权SELECTgrantee,privilege_type,is_grantableFROMinformation_schema.table_privilegesWHEREtable_name='职工'ANDis_grantable='YES';
  4. 使用角色管理权限(更安全的方式):
    -- 创建角色CREATEROLE 职工管理员;-- 给角色授权GRANTSELECT,DELETEON职工TO职工管理员WITHGRANTOPTION;-- 将角色赋予用户GRANT职工管理员TOUSER1;

九、常见问题

Q: USER1 可以修改表结构吗?
A: 不可以。只有ALTER权限才能修改表结构,这里只授予了 SELECT 和 DELETE。

Q: USER1 可以删除整个表吗?
A: 不可以。DELETE只能删除记录,DROP TABLE需要DROP权限。

Q: 如果 USER1 离职了怎么办?
A: 管理员应该立即执行:

REVOKEALLPRIVILEGESON职工FROMUSER1CASCADE;

Q: WITH GRANT OPTION 可以只针对部分权限吗?
A: 不可以。WITH GRANT OPTION应用于整个 GRANT 语句授予的所有权限。

这个授权语句在数据库安全管理中非常重要,合理使用可以实现灵活的权限管理,但也需要注意安全风险。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:50:08

Linux网络编程-UDP 组播原理与实战

一、UDP 组播核心概念UDP 通信有三种典型模式,组播是单播和广播的中间形态,能精准向指定一组主机通信,大幅节省网络带宽:通信模式特点适用场景单播一对一(两台主机端对端通信)精准的点对点数据传输&#xf…

作者头像 李华
网站建设 2026/4/16 12:14:29

在外如何用手机像翻相册一样查看其他设备里所有文件?

在外急需调取家里NAS、电脑的资料?别再折腾U盘和复杂的远程设置了。今天就教你用节点小宝,像翻看自己手机相册一样,随时随地、直观地访问你所有设备里的文件。一把钥匙 打开所有设备的“文件抽屉”节点小宝的“远程文件”功能就是一把钥匙。它…

作者头像 李华
网站建设 2026/4/16 11:00:49

平价药店销售与管理系统

平价药店销售与管理系统一、系统概述随着信息技术的飞速发展,传统的药店管理方式已经不能满足现代化经营的需求。平价药店销售与管理系统旨在通过计算机技术为药店提供全面的信息化管理,涵盖药品信息管理、库存管理、销售管理、会员管理、收银结算等多项…

作者头像 李华
网站建设 2026/4/16 12:44:05

RHCSA基础配置

实验要求:创建虚拟机:打开VMware Workstation配置虚拟机名称和位置分配硬盘空间(建议至少20GB)完成创建并启动安装安装RHEL9:选择安装语言配置安装目标(分区)设置root密码和创建用户等待安装完成…

作者头像 李华
网站建设 2026/4/16 12:56:47

【开题答辩全过程】以 基于安卓的点餐系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华