2016-06-07 4 views
0

Ich führe derzeit einen Windows Server 2008 R2 mit einem MSSQL-Server und Reporting Services.MSSQL Report Server alle Berechtigungen zurückgesetzt

Derzeit gibt es Hunderte von Ordnern und Berichten, die Benutzer haben jedoch ihre Sicherheitseinstellungen angepasst.

Meine Frage ist: Kann ich alle Berechtigungen für alle Ordner und Berichte zurücksetzen, um die gleichen Benutzerberechtigungen wie der/Home-Ordner zu haben, ohne sie nacheinander zu öffnen? Oder setzen Sie alle Berechtigungen zurück, erstellen Sie neue Berechtigungen im Ordner/Home und lassen Sie die anderen Ordner und Berichte erben?

Antwort

2

Sie können die API verwenden oder die SSRS-Daten direkt ändern. Die API ist genehmigt und sicherer. Dieser Artikel enthält einige Links, mit denen Sie beginnen können.

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d9f1b807-0200-47c9-9ec6-dd5316db13cf/reset-all-security-policies?forum=sqlreportingservices

+0

Danke für Ihren Vorschlag, das sieht vielversprechend aus, aber es bietet mir keine schnelle und einfache Lösung. Ich werde jedoch mithilfe der API einige Tools erstellen. Danke für den Vorschlag! –

0

Sie können dies in Massen tun, indem Sie die Tabelle [Catalog] in der ReportServer-Datenbank bearbeiten.

Ich denke, wenn Sie das Feld [PolicyRoot] auf 0 setzen die Ordner Objekte erben Berechtigungen von Home.

beginnen mit dieser Abfrage und haben einen Blick auf den Inhalt der Tabelle:

SELECT 
    * 
FROM 
    [ReportServer].[dbo].[Catalog] 
WHERE 
    [PolicyRoot] <> 0 
    AND [Path] LIKE '/%' --get child folders 
    AND [Type] = 1 -- just folders 

habe ich nicht getestet dies so extreme Vorsicht und definitiv Backup zuerst die Datenbank beraten.

+0

habe ich versucht, die Abfrage nach einem Backup zu machen, aber es scheint nicht die Berechtigungen zu aktualisieren, wenn ich sich im Berichtsdienst anzuzeigen. –

+0

Meine SELECT-Abfrage oder eine neue UPDATE-Anweisung, die Sie geschrieben haben? –

+0

Ich meine die Update-Anweisung, die ich natürlich geschrieben habe, sorry für den vagen Kommentar. 'USE [Report] GO UPDATE [dbo]. [Katalog] SET [PolicyRoot] = 0 WHERE ItemID IN ("Liste der IDs" ) GO' –