更改 DB2 中模式的 view/access 权限
Altering view/access permissions for a schema in DB2
我正在解决 IBM DB2 中的 "feature"。
这个奇特的数据库中有一个 "feature",如果我尝试使用 CREATE TABLE
语句但它没有找到模式,它会为我创建这个模式,即使我不想这样。这个错误让我花了很多时间进行调试,因为我的代码现在存在时期望它不会创建模式,如果它不存在
我的问题是——如何更改特定用户无权查看的特定模式(甚至在创建模式阶段)的权限?
我查看了这个doc..
好像和GRANT
一样,有以下三个权限:
ALTERIN
Grants the privilege to alter or comment on all objects in the
schema. The owner of an explicitly created schema automatically
receives ALTERIN privilege.
CREATEIN
Grants the privilege to create
objects in the schema. Other authorities or privileges required to
create the object (such as CREATETAB) are still required. The owner of
an explicitly created schema automatically receives CREATEIN
privilege. An implicitly created schema has CREATEIN privilege
automatically granted to PUBLIC.
DROPIN
Grants the privilege to drop
all objects in the schema. The owner of an explicitly created schema
automatically receives DROPIN privilege
只有 ALTERIN、CREATEIN 和 DROPIN,我看不到任何与查看访问权限相关的内容:/
编辑:
我检查了我们的 Dash DB 数据库以了解这个特定的 table,它对使用以下 SQL 的特定用户具有这些特殊权限:
SELECT * FROM SYSIBMADM.PRIVILEGES WHERE OBJECTSCHEMA = 'FAKE_SCRATCH';
这是结果:
编辑 2:
我尝试了以下方法来模拟 Dash DB 对该模式的该用户的权限:
GRANT ALTERIN, CREATEIN, DROPIN ON SCHEMA FAKE_SCRATCH TO USER TEST_USER;
还是不行:/
在 DB2 中执行的以下 SQL 查询修复了问题:
REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC
我正在解决 IBM DB2 中的 "feature"。
这个奇特的数据库中有一个 "feature",如果我尝试使用 CREATE TABLE
语句但它没有找到模式,它会为我创建这个模式,即使我不想这样。这个错误让我花了很多时间进行调试,因为我的代码现在存在时期望它不会创建模式,如果它不存在
我的问题是——如何更改特定用户无权查看的特定模式(甚至在创建模式阶段)的权限?
我查看了这个doc..
好像和GRANT
一样,有以下三个权限:
ALTERIN Grants the privilege to alter or comment on all objects in the schema. The owner of an explicitly created schema automatically receives ALTERIN privilege.
CREATEIN Grants the privilege to create objects in the schema. Other authorities or privileges required to create the object (such as CREATETAB) are still required. The owner of an explicitly created schema automatically receives CREATEIN privilege. An implicitly created schema has CREATEIN privilege automatically granted to PUBLIC.
DROPIN Grants the privilege to drop all objects in the schema. The owner of an explicitly created schema automatically receives DROPIN privilege
只有 ALTERIN、CREATEIN 和 DROPIN,我看不到任何与查看访问权限相关的内容:/
编辑:
我检查了我们的 Dash DB 数据库以了解这个特定的 table,它对使用以下 SQL 的特定用户具有这些特殊权限:
SELECT * FROM SYSIBMADM.PRIVILEGES WHERE OBJECTSCHEMA = 'FAKE_SCRATCH';
这是结果:
编辑 2:
我尝试了以下方法来模拟 Dash DB 对该模式的该用户的权限:
GRANT ALTERIN, CREATEIN, DROPIN ON SCHEMA FAKE_SCRATCH TO USER TEST_USER;
还是不行:/
在 DB2 中执行的以下 SQL 查询修复了问题:
REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC