Benutzerrollen kopieren
Benutzerrollen kopieren
Hallo,
gibt es eine Möglichkeit Benutzerrollen zu kopieren?
Ich möchte z.B. für den 1st lvl Support eine Rolle erstellen und diese kopieren. Dann würde ich die kopierte umbenennen (z.B. 2-lvl-Support) und um Rechte erweitern oder einschränken.
Gruß
gibt es eine Möglichkeit Benutzerrollen zu kopieren?
Ich möchte z.B. für den 1st lvl Support eine Rolle erstellen und diese kopieren. Dann würde ich die kopierte umbenennen (z.B. 2-lvl-Support) und um Rechte erweitern oder einschränken.
Gruß
Re: Benutzerrollen kopieren
Neue Rolle vorher anlegen und "leer" lassen. Dann im SQL Skript bei Ziel den Namen der neuen Rolle angeben, bei Quelle den Namen der Quellrolle
Code: Select all
/*
Kopieren der Rechte einer Benutzerrolle
VERWENDUNG AUF EIGENE GEFAHR
- manuelle Anlage der neuen Rolle
- Pflege der Quelle (von dort werden Daten übernommen)
- Pflege Ziel (dort werden erst Rechte entfernt, dann neu gesetzt)
- Einschränkungen über OU/Location werden nicht berücksichtigt, manuell nachpflegen
*/
DECLARE @Quelle AS NVARCHAR(50)
DECLARE @Ziel AS NVARCHAR(50)
DECLARE @QuelleID AS NVARCHAR(50)
DECLARE @ZielID AS NVARCHAR(50)
DECLARE @ZielCID AS NVARCHAR(50)
SET @Quelle = 'LHS Assetmanager Amt 10 Read' -- Datenpflege achtung, Lokalisierung
SET @Ziel = 'LHS Assetmanager Amt 15 Read' -- Datenpflege
SET @QuelleID =
(SELECT [Expression-ObjectID]
FROM SPSSecurityClassRole scr
WHERE scr.Name = @Quelle)
SET @ZielID =
(SELECT [Expression-ObjectID]
FROM SPSSecurityClassRole scr
WHERE scr.Name = @Ziel)
SET @ZielCID =
(SELECT [ID]
FROM SPSSecurityClassRole scr
WHERE scr.Name = @Ziel)
--SELECT @QuelleID, @ZielID
/* Typenrechte löschen */
DELETE FROM PLSCTypeRule
WHERE ID IN
(SELECT tr.ID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN SPSCommonClassBase com ON scr.[Expression-ObjectID] = com.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdOU ON rcb.[Expression-ObjectID] = rdOU.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdLoc ON rcb.[Expression-ObjectID] = rdLoc.[Expression-ObjectID]
LEFT JOIN PLSCTypeRule tr ON scr.[Expression-ObjectID] = tr.[Expression-ObjectID] --Typenrechte
--LEFT JOIN PLSCAccessRule ar ON rcb.[Expression-ObjectID] = ar.[Expression-ObjectID] --Rechte Aktionen
WHERE tr.[Expression-ObjectID] = @ZielID
)
/* Typenrechte einfügen */
INSERT INTO PLSCTypeRule
(ID,[Read],[Insert],[Write],[Delete],[Type], UsedInTypeSPSSecurityTypeRole)
SELECT
NEWID(),
tr.[Read],
tr.[Insert],
tr.[Write],
tr.[Delete],
tr.[Type],
@ZielID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN SPSCommonClassBase com ON scr.[Expression-ObjectID] = com.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdOU ON rcb.[Expression-ObjectID] = rdOU.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdLoc ON rcb.[Expression-ObjectID] = rdLoc.[Expression-ObjectID]
LEFT JOIN PLSCTypeRule tr ON scr.[Expression-ObjectID] = tr.[Expression-ObjectID] --Typenrechte
--LEFT JOIN PLSCAccessRule ar ON rcb.[Expression-ObjectID] = ar.[Expression-ObjectID] --Rechte Aktionen
WHERE scr.[Expression-ObjectID] = @QuelleID
AND @ZielID IS NOT NULL
/* Aktionsrechte entfernen */
DELETE FROM PLSCAccessRule
WHERE ID IN
(SELECT ar.ID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN SPSCommonClassBase com ON scr.[Expression-ObjectID] = com.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdOU ON rcb.[Expression-ObjectID] = rdOU.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdLoc ON rcb.[Expression-ObjectID] = rdLoc.[Expression-ObjectID]
--LEFT JOIN PLSCTypeRule tr ON rcb.[Expression-ObjectID] = tr.[Expression-ObjectID] --Typenrechte
LEFT JOIN PLSCAccessRule ar ON scr.[Expression-ObjectID] = ar.[Expression-ObjectID] --Rechte Aktionen
WHERE ar.[Expression-ObjectID] = @ZielID
)
/* Aktionsrechte setzen */
INSERT INTO PLSCAccessRule
(ID, [Execute], [Action], UsedInTypeSPSSecurityTypeRole)
SELECT
NEWID(),
ar.[Execute],
ar.[Action],
@ZielID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN SPSCommonClassBase com ON scr.[Expression-ObjectID] = com.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdOU ON rcb.[Expression-ObjectID] = rdOU.[Expression-ObjectID]
--LEFT JOIN PLSCRuleDimensionOU rdLoc ON rcb.[Expression-ObjectID] = rdLoc.[Expression-ObjectID]
--LEFT JOIN PLSCTypeRule tr ON rcb.[Expression-ObjectID] = tr.[Expression-ObjectID] --Typenrechte
LEFT JOIN PLSCAccessRule ar ON scr.[Expression-ObjectID] = ar.[Expression-ObjectID] --Rechte Aktionen
WHERE scr.[Expression-ObjectID] = @QuelleID
AND @ZielID IS NOT NULL
/* Tab- und Dialogerechte entfernen */
DELETE FROM [SchemaRelation-SPSSecurityClassRole2SPSContentClassObjectDialogTab]
WHERE ID IN
(SELECT r2d.ID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN [SchemaRelation-SPSSecurityClassRole2SPSContentClassObjectDialogTab] r2d
ON scr.ID = r2d.VisibleDialogTabs
WHERE scr.[Expression-ObjectID] = @ZielID
)
/* Tab- und Dialogerechte setzen */
INSERT INTO [SchemaRelation-SPSSecurityClassRole2SPSContentClassObjectDialogTab]
(ID, VisibleRoles, VisibleDialogTabs)
SELECT
NEWID(),
r2d.VisibleRoles,
@ZielCID
FROM SPSSecurityClassRole scr
--INNER JOIN SPSScRoleClassBase rcb ON scr.[Expression-ObjectID] = rcb.[Expression-ObjectID]
INNER JOIN [SchemaRelation-SPSSecurityClassRole2SPSContentClassObjectDialogTab] r2d
ON scr.ID = r2d.VisibleDialogTabs
WHERE scr.[Expression-ObjectID] = @QuelleID
AND @ZielID IS NOT NULL
MR Datentechnik Vertriebs- und Service GmbH
http://www.mr-daten.de/cms/it-service-management
http://www.mr-daten.de/cms/it-service-management
Re: Benutzerrollen kopieren
Danke Hubibi,
derzeit bekomme ich aber noch folgende Fehlermeldung:
Meldung 208, Ebene 16, Status 1, Zeile 9
Ungültiger Objektname 'SPSSecurityClassRole'.
Ich nehme aber mal an das dies ein Berechtigungsproblem ist. Ich werde dies dann mit dem SA versuchen sobald ich die Dokumentation mit dem PW bekomme.
derzeit bekomme ich aber noch folgende Fehlermeldung:
Meldung 208, Ebene 16, Status 1, Zeile 9
Ungültiger Objektname 'SPSSecurityClassRole'.
Ich nehme aber mal an das dies ein Berechtigungsproblem ist. Ich werde dies dann mit dem SA versuchen sobald ich die Dokumentation mit dem PW bekomme.
Re: Benutzerrollen kopieren
Hallo Hubibi,
leider bringt er auch mit dem sa Benutzer die gleiche Fehlermeldung:
Meldung 208, Ebene 16, Status 1, Zeile 9
Ungültiger Objektname 'SPSSecurityClassRole'.
Das Objekt ist ihm leider unbekannt.
leider bringt er auch mit dem sa Benutzer die gleiche Fehlermeldung:
Meldung 208, Ebene 16, Status 1, Zeile 9
Ungültiger Objektname 'SPSSecurityClassRole'.
Das Objekt ist ihm leider unbekannt.
Re: Benutzerrollen kopieren
Ist die richtige Datenbank ausgewählt?
Bei neuen Abfragen ist standardmäßig die 'master' DB ausgewählt und in dem SQL Statement gibt es kein "USE M42Production"
Bei neuen Abfragen ist standardmäßig die 'master' DB ausgewählt und in dem SQL Statement gibt es kein "USE M42Production"
Tria-media - IT Solutions
Re: Benutzerrollen kopieren
Hallo,
ja es war die falsche DB ausgwählt.
Gleich noch eine Frage: (da er mir als Ergebnis "0 Zeile(n) betroffen" ausgibt)
Quelle = 'Name der Rolle'
Ziel = 'Name der Zielrolle'
wobei Name der String ist, den ich im UI im Feld Name eingegeben habe?
ja es war die falsche DB ausgwählt.
Gleich noch eine Frage: (da er mir als Ergebnis "0 Zeile(n) betroffen" ausgibt)
Quelle = 'Name der Rolle'
Ziel = 'Name der Zielrolle'
wobei Name der String ist, den ich im UI im Feld Name eingegeben habe?
Re: Benutzerrollen kopieren
Ja
MR Datentechnik Vertriebs- und Service GmbH
http://www.mr-daten.de/cms/it-service-management
http://www.mr-daten.de/cms/it-service-management
Re: Benutzerrollen kopieren
Das Script tut bei mir nix. Läuft zwar fehlerfrei durch, aber eine neue Rolle scheint danach nicht auf.
Kann es sein, dass sich da im DB-Schema was geändert hat?
Kann es sein, dass sich da im DB-Schema was geändert hat?
Re: Benutzerrollen kopieren
hat sich erledigt! Lesen sollte man können!!
--> "manuelle Anlage der neuen Rolle"
Damit funktioniert es auch
--> "manuelle Anlage der neuen Rolle"
Damit funktioniert es auch
Who is online
Users browsing this forum: Google [Bot] and 6 guests