news 2026/4/3 6:07:57

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/3/31 23:01:34

这几款iPhone“邪修”软件,好用到逆天!

在日常使用iPhone的过程中,不知道屏幕前的你是否和我一样,总希望有一些“神奇”的APP,能悄无声息地提升效率、丰富生活,甚至帮你完成一些看似不可能的任务?本篇内容,小编就为大家精心推荐7款被不少用户称为…

作者头像 李华
网站建设 2026/3/30 23:03:41

【开题答辩全过程】以 基于Java的健身俱乐部管理系统的设计与开发为例,包含答辩的问题和答案

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

作者头像 李华
网站建设 2026/3/31 18:33:18

光伏项目多,如何高效管理?

在新能源转型加速推进的今天,户用光伏市场却面临着流程繁琐、效率偏低、成本高企的发展瓶颈。项目从立项到运维的全链条中,信息脱节、管控粗放等问题,成为不少从业者的痛点。而鹧鸪云户用光伏业务流程管理软件的出现,正以数字化力…

作者头像 李华
网站建设 2026/4/3 5:04:17

怎么才能把短视频中文配音变成英文配音?

从“添加字幕”到“沉浸式体验”——如何让短剧火遍全球你有没有遇到过这种困扰?在 TikTok 或 YouTube Shorts 上,上传的短剧虽然有趣,却因为语言障碍让海外观众止步不前。刚开始我也天真地认为,简单加上英文字幕就能解决问题&…

作者头像 李华
网站建设 2026/3/20 17:36:54

基于微信小程序的精致护肤购物系统 化妆品商城系统PHP_nodejs_vue+uniapp

文章目录系统架构与技术栈核心功能模块用户体验优化数据与安全策略扩展性与维护系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统架构与技术栈 该精致护肤购物系统采用前后端分离架构&#xff…

作者头像 李华