Chapter 22. Maintenance

22. Maintenance

In this chapter we consider general administrative maintenance tasks.

22.1. Testing User Specific Settings (su)

Especially when handling support requests it may be helpful to see ReportServer as a specific user sees it. To allow administrators to log in as a specific user without knowing their passwords ReportServer has a su function (substitute user identity). To invoke the su function press CTRL+Shift+L which opens a dialogue that allows to select a specific user and to login as that user. As this is a highly sensitive function, only users with the necessary access rights can invoke it. Who can access the functionality is controlled via the generic right su. In addition a user needs the execute right on the user that s/he wants to log in (cf. Chapter 3. User and Permission Management).

Note that granting the su functionality is a potential security risk, as it is difficult to control exactly what rights a user can obtain via logging in as another user.
22.2. Logging

All actions, such as changes to reports or execution of reports are logged in the ReportServer's audit log. The log is split over two database tables. The table RS_AUDIT_LOG_ENTRY contains all logged actions while the table RS_AUDIT_LOG_PROPERTY contains additional information for each action. Note that the tables are not truncated automatically and that on a system with heavy load the tables can thus become very big. It is hence recommended to set up an automatic archiving task. This can be achieved using a ReportServer script, or externally using the native scheduler of your RDBMS.

An example query for looking into your audit log tables is the following:

SELECT E.*, P.KEY_FIELD, P.VALUE
FROM RS_AUDIT_LOG_ENTRY E join RS_AUDIT_LOG_PROPERTY P on E.ENTITY_ID = P.LOG_ENTRY_ID
ORDER BY DATE_FIELD desc
22.3. Recovering of Objects

Besides logging all relevant actions in the audit-log, ReportServer also documents object changes (for example, how a report was changed). This allows to compare objects to older versions or even to recover older versions if necessary. To access the versioning capabilities use the Terminal command rev. rev list displays a list with all versions of an object. rev restore allows to restore an older version.