PUG

  • PUG News
  • PUG Forum
  • Shared documents
  • PUG Events
    • Scandinavian Conferences
    • Scandinavian Theme Days
    • D-A-CH Events
    • North American Events
  • PUG Info
    • PUG Board Info (Scandinavia)
    • PUG Rules
    • PUG Member Lists and Board Members
  • Contact Us

Rechte auf CI/Item Type begrenzen

  • Follow us on Twitter
  • Join our Facebook Group
  • RSS

Welcome to the POB User Group Online Community! › Forums › PUG DACH › Rechte auf CI/Item Type begrenzen

Tagged: rechte

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • 27/08/2020 at 15:52 #4943
    brubue
    Member

    Hallo zusammen,

    bei uns besteht der Wunsch, dass bestimmte Mitarbeiter nur bestimmte Configuration Items (abhängig vom CI/Item Type) bearbeiten können sollen. Also z.B. Mitarbeiter A kann an einen PC eintragen und ändern, wenn er aber einen Server ändern will, soll dies nicht möglich sein. Mit der normalen Rechteverwaltung über Rollen komme ich hier vermutlich nicht weiter oder gibt es doch eine Möglichkeit?

    Viele Grüße

    Bruno Büchele

    27/08/2020 at 16:26 #4944
    Stefan Reichelt
    Participant

    Hi Bruno,

    Mit Rollen wird das wohl schwer zu handhaben (obwohl es möglich wäre – mit Datensicherheitsrollen), aber vielleicht reicht ja eine Validierung?

    In etwa so:
    – Am CI-Typ hinterlegst du einen Reiter für schreibberechtigte Nutzer
    – Condition (Update) auf Configuration Item: Ist wahr, wenn der aktuelle Benutzer [U] nicht über die entsprechende Dynamic Relation mit dem CI-Typ des CIs verbunden ist, oder der aktuelle Benutzer in der Gruppe “Admin” ist (eine Abfrage auf eine bestimmte Sicherheitsrolle wäre auch denkbar)
    – Validierung: Gib einen Fehler aus, der gleichzeitig das Update verhindert

    Kannst du damit etwas anfangen?

    Grüße,

    Stefan

    27/08/2020 at 17:04 #4945
    TK
    Member

    Stefan war (wieder) schneller, hätte den gleichen Vorschlag anzubieten. Die Rechte gleich lassen und eine Condition von CI-Typ zu Gruppe hinterlegen. Dann jeder alles sehen, aber nur ändern was er soll.

    Gruß
    Tobias.

    08/09/2020 at 08:58 #4952
    brubue
    Member

    Hallo Stefan,

    ich versuche deinen Vorschlag in folgender Form umzusetzen:
    Es gibt eine extra Rolle, die prinzipiell das Speichern von CI erlaubt. Dann gibt es eine Gruppe, die zu dieser Rolle gehört, weil Berechtigungen nur über Gruppen vergeben werden sollen.
    Auf dem SQL-Server habe ich eine Funktion, die mir 1 liefert, wenn der aktuelle Benutzer mitglied dieser bestimmten Rolle ist. Außerdem noch eine 2. Funktion, die mir 1 liefert, wenn auf dem CI-Typ dieser Benutzer hinterlegt ist. Die Abfragen funktionieren auf dem SQL-Server.
    Wenn ich von POB aus meine Condition [SQL:dbo.LRA_User_in_Gruppe([UID])] oder [SQL:Dbo.LRA_CI_Typ([CIType.PK])] anwende, so erhalte ich immer 0, also false. Also funktioniert meine Abfrage nicht wie erwartet.
    Außerdem muss ich noch das Problem lösen, dass das CI auch durch öffnen eines Falls geändert wird.

    Hat mir jemand zu diesen 2 Problemen noch eine Idee?

    Viele Grüße

    Bruno

    18/09/2020 at 12:45 #4954
    brubue
    Member

    Hallo zusammen, nachdem ich die Lösung umgesetzt habe, hier noch eine kleine Doku dazu. Falls mir noch jemand einen Tip hat, wie ich in einem neuen Fall meine Variable @CiType.PK ohne Fehler anwenden kann, her damit.

    1. Erstellen einer Rolle, die berechtigt ist ConfigurationItems zu erstellen und zu ändern
    2. Erstellen einer Gruppe, die die zuvor erstelle Rolle beinhaltet
    3. auf dem SQL-Server folgende Funktion erstellen zur Prüfung der Gruppenzugehörigkeit

    USE [POBG6]
    GO
    /****** Object: UserDefinedFunction [dbo].[LRA_User_in_Gruppe] Script Date: 18.09.2020 12:11:29 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    — =============================================
    — Author: Bruno Büchele
    — Create date: 07.09.2020
    — Description: prüft ab, ob Benutzer ein CI mit einem bestimmten ci-Typ speichern darf
    — =============================================
    ALTER FUNCTION [dbo].[LRA_User_in_Gruppe]
    (
    — Add the parameters for the function here
    @BenutzerID nvarchar(255)

    )
    RETURNS int
    AS
    BEGIN
    return(
    SELECT count( dbo.User_Table.user_pk)
    FROM dbo.Entity_Relation RIGHT OUTER JOIN
    dbo.User_Table ON dbo.Entity_Relation.trail_pk = dbo.User_Table.user_pk FULL OUTER JOIN
    dbo.User_User_Group FULL OUTER JOIN
    dbo.User_Group ON dbo.User_User_Group.user_group_pk = dbo.User_Group.user_group_pk ON dbo.User_Table.user_pk = dbo.User_User_Group.user_pk

    WHERE (dbo.Entity_Relation.entity_id = N’USER’) AND (dbo.Entity_Relation.relation_name = N’Speicherberechtigte’) AND (dbo.User_Group.id = N’HW eingeschränkt verwalten’)
    and
    dbo.User_Table.id = @BenutzerID
    )

    END

    4. auf dem SQL-Server folgende Funktion erstellen zur Prüfung des CI-Typs
    USE [POBG6]
    GO
    /****** Object: UserDefinedFunction [dbo].[LRA_CI_Typ] Script Date: 18.09.2020 12:15:34 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    — =============================================
    — Author: Bruno Büchele
    — Create date: 07.09.2020
    — Description: prüft ab, ob Benutzer ein CI mit einem bestimmten ci-Typ speichern darf
    — =============================================
    ALTER FUNCTION [dbo].[LRA_CI_Typ]
    (
    — Add the parameters for the function here
    @CIType nvarchar(255),
    @BenutzerID nvarchar(255),
    @CiType_vorher nvarchar(255)
    )
    RETURNS int
    AS
    BEGIN

    declare @Result int;
    declare @CIType_alt int = 0;
    declare @Step_1 int;
    declare @Step_2 int;
    — prüfen, ob dieser Benutzer für Typ hinterlegt ist
    SELECT @Step_1= count( dbo.User_Table.user_pk)
    FROM dbo.Entity_Relation RIGHT OUTER JOIN
    dbo.User_Table ON dbo.Entity_Relation.trail_pk = dbo.User_Table.user_pk FULL OUTER JOIN
    dbo.User_User_Group FULL OUTER JOIN
    dbo.User_Group ON dbo.User_User_Group.user_group_pk = dbo.User_Group.user_group_pk ON dbo.User_Table.user_pk = dbo.User_User_Group.user_pk

    WHERE (dbo.Entity_Relation.entity_id = N’USER’) AND (dbo.Entity_Relation.relation_name = N’Speicherberechtigte’) AND (dbo.User_Group.id = N’HW eingeschränkt verwalten’)
    and dbo.Entity_Relation.lead_pk = @CIType AND
    (dbo.User_Table.id = @BenutzerID);
    — prüfen, ob dieser Benutzer auch für Vorgänger hinterlegt ist
    –SELECT @CIType_alt = dbo.Configuration_Item_Type.ci_type_pk
    –FROM dbo.Configuration_Item INNER JOIN
    — dbo.Configuration_Item_Type ON dbo.Configuration_Item.ci_type_pk = dbo.Configuration_Item_Type.ci_type_pk
    –WHERE (dbo.Configuration_Item.id = @CiType_vorher)

    — if @CIType_alt <> 0
    if @CiType_vorher not like ‘–‘
    Begin
    select @citype_vorher = left(@CiType_vorher ,len(@CiType_vorher) – 2);
    SELECT @Step_2= count( dbo.User_Table.user_pk)
    FROM dbo.Entity_Relation RIGHT OUTER JOIN
    dbo.User_Table ON dbo.Entity_Relation.trail_pk = dbo.User_Table.user_pk FULL OUTER JOIN
    dbo.User_User_Group FULL OUTER JOIN
    dbo.User_Group ON dbo.User_User_Group.user_group_pk = dbo.User_Group.user_group_pk ON dbo.User_Table.user_pk = dbo.User_User_Group.user_pk

    WHERE (dbo.Entity_Relation.entity_id = N’USER’) AND (dbo.Entity_Relation.relation_name = N’Speicherberechtigte’) AND (dbo.User_Group.id = N’HW eingeschränkt verwalten’)
    and dbo.Entity_Relation.lead_pk = @CIType_vorher AND
    (dbo.User_Table.id = @BenutzerID);
    End
    else
    set @step_2 = 1;

    if @Step_1 + @Step_2 = 2
    set @Result = 1
    else
    set @Result = 0;

    return (@result);

    END

    5. in POB im EnterpriseManager eine Condition erstellen für Insert

    6. in POB EM eine weitere Concition für Update
    dies ließ sich leider für mich nicht anders lösen, da mir beim Insert ein Parameter fehlt bzw. einen Datanbankfehler verursacht

    7. im EM noch eine Validation für Insert anlegen

    8. im EM noch eine Validation für Update anlegen

    9. im EM noch einen Folder für Speicherberechtigte anlegen

    10. jetzt kann beim CI-Typ ein Speicherberechtigtet hinterlegt werden

    dieser darf nun nur die CI-Types anlegen und ändern, bei denen er hinterlegt ist

    Die Screenshots konnte ich leider nicht anfügen, da ich diese wohl zuerst auf einen entsprechenden Server hochladen müsste.
    Wer sie möchte, bitte melden.

  • Author
    Posts
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.
Log In

Login

Register | Lost your password?

Menu

  • PUG News
  • PUG Forum
  • Shared documents
  • PUG Events
    • Scandinavian Conferences
    • Scandinavian Theme Days
    • D-A-CH Events
    • North American Events
  • PUG Info
    • PUG Board Info (Scandinavia)
    • PUG Rules
    • PUG Member Lists and Board Members
  • Contact Us

Pages

  • Anmeldung zur PUG Konferenz 2018
  • Contact us
  • Forgot Password
  • Login
  • Lost password
  • POB Tip – Filtering lists to show only limited data
  • Profile
  • Registration
  • Registration for PUG 2019 in Scandinavia
  • Registration for PUG 2020 in Scandinavia
  • Skandinavisk PUG konference 2014 (Hurdal, Norge)
  • Skandinavisk PUG konference 2017 (Sundvolden, Norge)
  • Tilmelding til / Anmälan till PUG 2015 i Sollentuna
  • Tilmelding til erfamøde hos Frederiksberg Kommune
  • Tilmelding til PUG 2016 / Anmälan till PUG 2016
  • Tilmelding til PUG 2018 / Anmälan till PUG 2018
  • Udfyld nedenstående felter hvis du ønsker at melde jer ind i PUG
  • Welcome to the POB User Group Online Community!
  • Wendia North America 2018 Customer-Partner Conference Registration Form
  • Wendia North America 2019 Customer-Partner Conference Registration Form
  • You are not a member?
  • Webinar on the New Mobile Web Apps in POB G6 2.006/01/2021 - 13:41

    The POB G6 2.0 mobile interfaces for analysts and customers provide great new capabilities and features. The mobile interfaces have a new look and feel and they allow utilization of most areas of POB from a mobile platform. On January 19th, Kevin Goertzen will show and demonstrate the new mobile interfaces in POB G6 2.0 […]

  • December Webinar on Triggers in POB27/11/2020 - 12:10
  • PUG 2021 – Redesigned for a Virtual Setting (Scandinavia)13/11/2020 - 11:29

    The PUG board has decided to have next year’s Scandinavian conference in a virtual setting. So, mark your calendar for April 20th, 2021, where PUG will host a one-day virtual conference. The decision was made based on the feedback the PUG board got when they asked how participants would feel about attending a physical conference, […]

© Copyright - PUG - All rights reserved by PUG © 2012
  • Send us Mail
  • Follow us on Twitter
  • Join our Facebook Group
  • Subscribe to our RSS Feed