SAP HANA平台应用开发
上QQ阅读APP看书,第一时间看更新

2.4.3 关于授权

接着2.4.1节的例子,在使用HANA_TPCH用户连接SAP HANA系统之后,在这个用户的Schema列表中还能看到DEMO这个Schema对象,这是因为HANA_TPCH用户拥有对DEMO对象的操作权限。打开HANA_TPCH用户的信息,如图2-37所示。

图2-37 编辑HANA_TPCH用户

切换到“Objective Privileges”选项卡,在SQL Object列表中能看到该用户拥有对DEMO对象进行SELECT操作的权限。同样,切换到其他权限选项卡,可以添加不同的权限对象,然后进行一一授权。通过图2-38所示的说明,可以大致了解SAP HANA是如何进行用户访问授权的。

图2-38 HANA_TPCH用户拥有SQL对象的操作权限列表

除此之外,用户也可以使用SQL命令行的方式来进行授权。使用SQL命令行进行授权管理的相关语法如下。

语法:

    ALTER USER <需要修改权限的用户名> <修改选项>

例子:

    ALTER USER hana_tpch PASSWORD Sap12345

语法:

    GRANT <系统权限> TO <用户名or角色名>

例子:

    GRANT BACKUP ADMIN TO hana_tpch

语法:

    GRANT <Schema权限> ON SCHEMA <Schema名称> TO <用户名or角色名>

例子:

    GRANT TRIGGER DELETE DROP SELECT ON SCHEMA DEMO TO hana_tpch

语法:

    GRANT <对象权限> ON <对象名称> TO <用户名or角色名>

例子:

    GRANT ALL PRIVILEGES ON DEMO.TABLE_1 TO hana_tpch

语法:

    GRANT <Role名称> TO <用户名or角色名>

下面介绍一个用SQL命令对用户访问控制进行授权的例子。创建一个用户,名为tester,然后修改其默认密码为Sap12345。接着创建一个新角色,将DEMO这个Schema对象的SELECT权限赋予该角色,并且将DEMO中的数据库表sales的INSERT、UPDATE、SELECT等权限也赋予该角色,最后将这个角色赋予用户tester。

    CREATE USER tester PASSWORD initial1;
    ALTER USER tester PASSWORD Sap12345;
    CREATE ROLE role_for_modeling;
    GRANT SELECT ON SCHEMA demo TO role_for_modeling;
    GRANT SELECT INSERT UPDATE ON demo.sales TO role_for_modeling;
    GRANT role_for_modeling TO tester;

提示信息

上面的SQL示例代码及语法只是权限访问控制中经常使用的一部分内容,更多关于访问权限相关的SQL命令请参考:SAP HANA SQL Reference文档→SQL Statement章节→Access Control Statement,可以在help.sap.com/hana_platform下载这个文档。

因为在SAP HANA工作台中,用户要通过向导操作来管理所有的授权操作,只需要掌握如何赋予权限,以及该权限的意义即可,并不需要用户掌握所有使用SQL来进行授权管理的命令语法。