向 SAP Hana 中的用户授予对象权限

Grant Object Privileges to users in SAP Hana

我需要向用户授予对象权限,但我不是架构的所有者。 我试过用系统用户来做,但我也做不到。 我的远景是使用 Sys 用户(系统除外),但它已停用,我无法通过我的用户激活它。

有什么方法可以将此权限授予用户?我不能要求架构的所有者这样做,因为她今天辞职了……而且我不想更改她的数据库用户的密码。

我知道在某些时候我需要创建一个新的 DBAdmin 用户并创建这些模式的备份,因为当我同事的 SAP 用户被删除时,它会删除 Hana 用户和 DB 用户使用它创建和授予的所有对象、角色和权限。

哦哦! 此处删除用户时要非常小心,因为 - 正如您正确编写的那样 - 删除会产生级联效应。

还有: 您必须拥有对象的所有权或您想要通过授予选项授予的特权。 使用 SYSTEM 用户对此无济于事,无论如何 SYS 永远不能用于登录数据库。

由于也没有办法接管所有权,唯一实际的方法是查明用户拥有哪些对象和权限授予 created/performed。

然后登录用户并重构对涵盖对象权限的角色的授权。 作为下一步,您可以考虑创建一个非登录用户来拥有这些对象,然后对用户的对象执行 import/export。

最后,您可以创建对对象具有所需权限的设计时角色。这允许具有 ROLE ADMIN 权限的用户获得 granting/revoking 权限,这使管理变得更加容易和结构化。

当然可以:

( 
SELECT "SCHEMA_NAME",  
'' AS "OBJECT_NAME",  
'SCHEMA' AS "OBJECT_TYPE",   "SCHEMA_OWNER" as "OWNER_NAME"  
FROM "PUBLIC"."SCHEMAS"  
WHERE SCHEMA_OWNER = 'A'  UNION ALL 

SELECT "SCHEMA_NAME", "OBJECT_NAME",  
"OBJECT_TYPE", "OWNER_NAME"   FROM "PUBLIC"."OWNERSHIP"  
WHERE  
"SCHEMA_NAME" IN 
( SELECT "SCHEMA_NAME" from "PUBLIC"."SCHEMAS"  
WHERE "SCHEMA_OWNER" = 'A' )  OR "OWNER_NAME" = 'A' 
) ORDER BY "SCHEMA_NAME" ASC, "OBJECT_NAME" ASC;

您可以在我写的 SAP HANA 书中找到这个和许多其他有用的东西:https://www.sap-press.com/sap-hana-administration_3506/