租户下创建只读用户,授予只能查询指定表的权限,以下权限最合适的是?
A. SELECT ON db.table
B. READ
C. ALL PRIVILEGES
D. SELECT ANY TABLE
正确答案是:A. SELECT ON db.table
解析:
-
A. SELECT ON db.table(
正确)
这是最精确、最符合最小权限原则的授权方式。它明确将权限限定在指定数据库下的指定表 ,仅授予查询(SELECT)权限,完全满足“只读用户”和“只能查询指定表”的需求。 -
B. READ(✘ 错误)
READ 是 OceanBase 中的一种角色(Role) 或某些系统中的宏观权限,通常包含多个操作(如 SHOW、SELECT 等),且作用范围可能为整个租户或整个库,不够精确到“指定表”。 -
C. ALL PRIVILEGES(✘ 错误)
这授予了该表或该库的全部操作权限(INSERT、UPDATE、DELETE、ALTER 等),远超出“只读”需求,违背最小权限原则。 -
D. SELECT ANY TABLE(✘ 错误)
该权限通常意味着可以查询租户下所有表 (无论属于哪个用户或哪个库),无法限定为“指定表”,范围过大。