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来进行授权管理的命令语法。