28.01.2013 Views

SAP HANA Developer Guide - Get a Free Blog

SAP HANA Developer Guide - Get a Free Blog

SAP HANA Developer Guide - Get a Free Blog

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Some database objects depend on other objects. Views, for example, are defined as queries on other tables and<br />

views. The authorization for an operation on the dependent object (the queried tables and views) requires<br />

privileges for the dependent object and the underlying object. In case of views, the <strong>SAP</strong> <strong>HANA</strong> database<br />

implements the standard SQL behavior. A user has the authorization for an operation on a view if the following is<br />

true:<br />

● The privilege for operations on the view has been granted to the user or a role assigned to the user.<br />

● The owner of the view has the corresponding privileges on the underlying objects with the option to grant<br />

them to others.<br />

This behavior can be used to grant selective access to a table.<br />

12.4.3 Package Privileges<br />

In the <strong>SAP</strong> <strong>HANA</strong> repository, authorizations can be assigned to individual packages.<br />

Authorizations assigned to a repository package are implicitly assigned to the design-time objects in the package<br />

as well as to all sub-packages. Users are only allowed to maintain objects in a repository package if they have the<br />

necessary privileges for the package in which they want to perform an operation, for example to read or write to<br />

an object in that package.<br />

Note: Package authorizations can be set for a specific user or for a role.<br />

If the user-authorization check establishes that a user does not have the necessary privileges to perform the<br />

requested operation in a specific package, the authorization check is repeated on the parent package and<br />

recursively up the package hierarchy to the root level of the repository. If the user does not have the necessary<br />

privileges for any of the packages in the hierarchy chain, the authorization check fails and the user is not<br />

permitted to perform the requested operation.<br />

In the context of repository authorizations, there is a distinction to be made between native packages and<br />

imported packages.<br />

● Native Package<br />

A package that is created in the current system and expected to be edited in the current system. Changes to<br />

package objects must be performed in the original development system where they were created and<br />

transported into subsequent systems. The content of native packages are regularly edited by developers.<br />

● Imported Package<br />

A package that is created in a remote system and imported into the current system. Imported packages<br />

should not usually be modified, except when replaced by new imports during an update. Otherwise, imported<br />

packages should only be modified in exceptional cases, for example, to carry out emergency repairs.<br />

To perform every-day, package-related, application-development tasks in the repository, developers typically<br />

need the following privileges for the application packages:<br />

● REPO.READ<br />

Read access to the selected package and design-time objects (both native and imported)<br />

● REPO.EDIT_NATIVE_OBJECTS<br />

Authorization to modify design-time objects in packages originating in the system the user is working in<br />

● REPO.ACTIVATE_NATIVE_OBJECTS<br />

Authorization to activate/reactivate design-time objects in packages originating in the system the user is<br />

working in<br />

● REPO.MAINTAIN_NATIVE_PACKAGES<br />

330<br />

P U B L I C<br />

© 2012 <strong>SAP</strong> AG. All rights reserved.<br />

<strong>SAP</strong> <strong>HANA</strong> <strong>Developer</strong> <strong>Guide</strong><br />

Setting Up Roles and Authorizations

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!