【问题标题】:Grant Object Privileges to users in SAP Hana向 SAP Hana 中的用户授予对象权限
【发布时间】:2016-03-07 10:46:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: database sap privileges hana


    【解决方案1】:

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

    还有: 您必须拥有对象的所有权或要使用授权选项授予的权限。 使用 SYSTEM 用户无济于事,而且 SYS 永远不能用于登录数据库。

    由于也无法接管所有权,唯一实际的方法是找出用户创建/执行了哪些对象和权限授予。

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

    最后,您可以创建具有对象所需权限的设计时角色。这允许具有 ROLE ADMIN 权限的用户授予/撤销权限,这使得管理更容易,结构更好。

    【讨论】:

    • 嗨,拉斯,感谢您的回答。您能告诉我如何找到用户创建的对象以及用户授予其他人的权限吗?我找不到任何包含该信息的表格。
    【解决方案2】:

    当然:

    ( 
    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/

    【讨论】:

    • 你太棒了...我去看看。
    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多