Wat betekent het dat de toegangsbeperkingen zijn gewijzigd? Wat te doen als op een smartphone of tablet met Android de melding 'Toegangsbeperkingen zijn gewijzigd. Batchbewerking van toestemmingsbeperkingen en sjablonen

Toegangscontrole

Met het programma kunt u de gebruikerstoegang tot verschillende functies, lijsten en documenten configureren. Er zijn vooraf gedefinieerde rollensets beschikbaar. Bovendien is het mogelijk om de toegang onafhankelijk te configureren. Er is een rol vereist om de toegang te beheren Volledige rechten.

Lijsten worden gebruikt om een ​​lijst met gebruikers bij te houden en hun rechten te configureren Gebruikers en (sectie AdministratieGebruikers en rechten instellen). Een toegangsgroep definieert een reeks acties met programmagegevens die leden van deze groep kunnen uitvoeren. In de regel komen toegangsgroepen overeen met de verschillende functieverantwoordelijkheden (of soorten activiteiten) van programmagebruikers. Een gebruiker kan tegelijkertijd lid zijn van een of meerdere toegangsgroepen, die samen zijn persoonlijke toegangsrechteninstellingen vormen.

Opmerking: Om toegangsrechten te configureren, dient u alleen de 1C:Enterprise-gebruikersmodus te gebruiken.

Het programma instellen

Om gebruikerstoegangsrechten zo flexibel mogelijk te configureren, moet u de modus voor het beperken van gebruikerstoegangsrechten op recordniveau inschakelen. Om dit te doen, moet u het selectievakje inschakelen Beperk de toegang op recordniveau in de sectie. Het wordt aanbevolen om deze modus in te schakelen in gevallen waarin er echt vraag naar is (veel gebruikers werken bijvoorbeeld met het programma), omdat Dit heeft een grote invloed op de systeemprestaties.

In dit geval zijn de volgende opties beschikbaar:

  • Vlag "Toegangsgroepen tegenpartijen"– toestaan ​​dat groepen tegenpartijen toegang krijgen tot gegevens, in dit geval wordt het commando beschikbaar:
  • Toegangsgroepen tegenpartijen– het creëren van groepen partners om de toegang tot telefoonboeken, documenten en andere gegevens te differentiëren.
  • Vlag "Toegangsgroepen voor opslag"– schakel het selectievakje in om de toegang tot gegevens door groepen opslaglocaties te configureren. Hierna komt het commando beschikbaar:
  • Toegangsgroepen voor opslag– creatie van extra toegangsgroepen voor opslaglocaties om de toegang tot gegevens te differentiëren.
  • Vlag "Kennisbasiscategorieën Toegangsgroepen"– schakel het selectievakje in om aanpassing van de toegang tot kennisbankcategorieën mogelijk te maken. Hierna komt het commando beschikbaar:
  • Toegangsgroepen voor kennisbankcategorieën– het creëren van aanvullende groepen kennisbankcategorieën om de toegang tot categorieën kennisbankartikelen te differentiëren.


Op de opslaglocatiekaart zal bijvoorbeeld, nadat u het selectievakje “Toegangsgroepen opslaglocatie” hebt ingeschakeld, het vereiste attribuut “Toegangsgroep” verschijnen.


Het inschakelen van de modus voor gebruikerstoegangsbeperking op recordniveau kan lang duren, afhankelijk van de hoeveelheid gegevens die in het programma zijn ingevoerd. Als er een grote hoeveelheid gegevens in het programma is ingevoerd voordat deze modus wordt ingeschakeld, geeft het programma een waarschuwing weer.


Het voorbereiden van de servicegegevens die nodig zijn om in deze modus te werken, wordt op de achtergrond uitgevoerd met behulp van de routinetaak Gegevens vullen om de toegang te beperken. Als er een grote hoeveelheid gegevens in het programma wordt ingevoerd, is het raadzaam om het vooraf te configureren zodat het start op een moment dat gebruikers niet met het programma werken.

Toegangsgroepen instellen

Met toegangsgroepen kunt u algemene toegangsrechteninstellingen instellen en beheren voor een bepaalde groep gebruikers die soortgelijke functies in het programma uitvoeren, bijvoorbeeld: Technici van het centrale kantoor of Filiaalbeheerders. Alleen programmabeheerders die in een vooraf gedefinieerde toegangsgroep staan, hebben rechten om de lijst te bewerken Beheerders. Bovendien heeft de gebruiker die in de toegangsgroep is opgegeven als Verantwoordelijk, kan de samenstelling van de deelnemers in deze groep wijzigen.

Een toegangsgroep is altijd gekoppeld aan een van de beschikbare toegangsgroepprofielen, die in de regel meerdere rollen combineren. Wanneer u een gebruiker aan een toegangsgroep toevoegt, krijgt de gebruiker alle rollen toegewezen die zijn gedefinieerd in het toegangsgroepprofiel. Bijvoorbeeld een vooraf gedefinieerde toegangsgroep Beheerders gekoppeld aan profiel Beheerder, inclusief de rol Volledige rechten. Deze rol biedt onbeperkte toegang tot alle gegevens en wordt toegewezen aan alle programmabeheerders die in de toegangsgroep staan Beheerders.

Om een ​​nieuwe toegangsgroep aan te maken, gaat u naar de sectielijst Beheer – Gebruikers- en rechteninstellingen – Toegangsgroepen.



Klik op de knop Creëren.

Vul het veld in Naam.

Het wordt aanbevolen om de toegangsgroep een meervoudsnaam te geven, zodat de naam een ​​indicatie bevat van het daarin gebruikte profiel (in de Profiel) en karakteriseerde op ondubbelzinnige wijze de samenstelling van de daarin gedefinieerde toegangsrechteninstellingen. Bijvoorbeeld op basis van profiel Reparatie werknemer toegangsgroepen kunnen worden ingevoerd Renovatiepersoneel hoofdkantoor En Reparatiepersoneel Tak 1.

Op de toegangsgroepkaart moet u een van de beschikbare selecteren Profielen toegang tot groepen.


Op het tabblad Bandleden een lijst met gebruikers (en gebruikersgroepen) op wie de toegangsrechteninstellingen moeten gelden.

Om snel gebruikers te vermelden, kunt u op de knop klikken Ophalen. Selecteer de juiste gebruikers.

De keuzelijst die wordt geopend bestaat uit twee delen.

Selecteer links in het venster de gewenste gebruikersgroep (u kunt de hele groep in één keer selecteren), selecteer de gewenste gebruikers uit deze groep en klik vervolgens op de knop Afmaken en afsluiten om terug te keren naar de groepsinstellingen.


In het veld Verantwoordelijk selecteer de gebruiker die verantwoordelijk is voor het lidmaatschap van de toegangsgroep.

Vervolgens op het tabblad Toegangsbeperkingen U moet aanvullende instellingen voor toegangsrechten opgeven. Opmerking: Het tabblad is mogelijk niet beschikbaar voor toegangsgroepen die niet over een dergelijke instelling beschikken (afhankelijk van de instellingen van het geselecteerde profiel).

Op dit tabblad gebruikt u het veld Type toegang U kunt de grenzen instellen van het gegevensgebied waarmee groepsleden met toegang mogen werken. Met type toegang bedoelen we een bepaalde regel waarbij toegang tot programmagegevens “toegestaan” is. Gebruik bijvoorbeeld het toegangstype Organisaties U kunt gebruikers alleen laten werken met documenten voor specifieke organisaties; of omgekeerd, verberg documenten van bepaalde organisaties voor hen. Samenstelling van de toegangstypen vermeld op het tabblad Toegangsbeperkingen, hangt af van het profiel dat in het veld is geselecteerd Profiel. Daarnaast bepaalt het profiel ook precies hoe de instelling van het toegangstype werkt: het staat alleen het bekijken toe of bevat ook de mogelijkheid om gegevens te bewerken. Als het toegangsgroepprofiel bijvoorbeeld een rol bevat voor het lezen van documenten, kunnen gebruikers documenten voor specifieke organisaties bekijken. Als het profiel een rol bevat voor toevoegen en wijzigen, wordt het mogelijk om dergelijke documenten te bewerken.


Voor elk type toegang kunt u een lijst met toegestane waarden opgeven, of, omgekeerd, een lijst met waarden die niet toegankelijk mogen zijn. De eerste configuratiemethode is geschikt in gevallen waarin het de taak is om alleen toegang te bieden tot een bepaald gegevensgebied. De tweede configuratiemethode is handig wanneer u de toegang tot een eerder bekend gegevensgebied moet blokkeren en voor alle nieuwe waarden die in het programma worden ingevoerd, standaard tolerante regels moeten gelden. Als u bijvoorbeeld het toegangstype gebruikt Organisaties er is een regel gesteld die het werken met documenten die betrekking hebben op de organisatie verbiedt Ons bedrijf en vervolgens naar een nieuwe organisatie Handelshuis, later in het programma geïntroduceerd, zijn deze beperkingen niet van toepassing. Houd er rekening mee dat inschakelende instellingen voorrang hebben op verbiedende instellingen. Dus als de gebruiker in het bovenstaande voorbeeld documenten voor de organisatie mag invoeren Ons bedrijf in een andere toegangsgroep met hetzelfde profiel, dan heeft hij uiteindelijk toegang tot alle documenten voor deze organisatie.


Om het instellen van toegangsrechten te vereenvoudigen, kunt u in sommige gevallen in de lijst met toegestane of verboden waarden geen individuele elementen opgeven, maar hele groepen elementen. Bijvoorbeeld voor het toegangstype Opslaglocatiegroepen(zie figuur 3) kunt u de toegang beperken per toegangsgroep van opslaglocaties, en niet voor elke opslaglocatie afzonderlijk. Om dit te doen, moet u een lijst met toegangsgroepen voor opslaglocaties definiëren en elke opslaglocatie toewijzen aan een of andere groep. Deze acties kunnen niet alleen door de beheerder worden uitgevoerd, maar ook door elke gebruiker met de juiste rechten om de lijst met opslaglocaties te bewerken. De verbodsinstelling werkt op een vergelijkbare manier.

Een gebruiker kan in meerdere toegangsgroepen tegelijk worden opgenomen. In dit geval worden de totale toegangsrechten opgeteld (gecombineerd door “of”) van de toegangsrechten van elke groep. Bijvoorbeeld in een toegangsgroep Reparatie personeel de gebruiker mag een document toevoegen/bewerken Begin dienst per organisatie Ons bedrijf. In een toegangsgroep Magazijnmedewerkers hij mag het document toevoegen/wijzigen Erkenning per organisatie Handelshuis. Hierdoor heeft hij de rechten om documenten toe te voegen/bewerken Begin dienst per organisatie Ons bedrijf En Erkenning per organisatie Handelshuis. Houd er rekening mee dat het niet de lijsten met toegestane waarden zijn die in groepen zijn gespecificeerd, die worden gecombineerd, maar de toegangsrechten. Die. Het is een vergissing om aan te nemen dat de gebruiker in het bovenstaande voorbeeld toegang heeft om beide typen documenten tegelijkertijd voor beide organisaties toe te voegen/wijzigen.

Toegangsrechten instellen voor individuele gebruikers

Om de samenstelling van de toegangsgroepen van de betreffende gebruiker (of groep gebruikers; hierna eenvoudigweg “gebruiker”) te bekijken en te configureren, kunt u het commando gebruiken Toegangsrechten in het navigatiepaneel van de gebruikerskaart.

Met behulp van een knop Opnemen in groep Op het tabblad kan de beheerder de gebruiker toevoegen aan het lidmaatschap van een van de beschikbare toegangsgroepen.

Met behulp van een knop Verwijderen uit groep U kunt een gebruiker verwijderen uit een speciale toegangsgroep.

Deze instelling kan ook worden gemaakt door degenen die verantwoordelijk zijn voor het lidmaatschap van de toegangsgroep voor hun toegangsgroepen.

Met behulp van een knop Groep wijzigen U kunt naar de toegangsgroepkaart gaan die in de lijst is geselecteerd.



Op het tabblad Toegestane acties (rollen) Ter referentie wordt een cumulatieve lijst met rollen weergegeven die aan de gebruiker zijn toegewezen. De lijst met rollen bestaat uit alle rollen die deel uitmaken van de toegangsgroepen waarin de gebruiker is opgenomen. Dezelfde lijst is te zien in Configurator, in de infobase-gebruikerseigenschappen. U mag deze lijst echter niet bewerken in de 1C:Enterprise-configuratiemodus; het instellen van gebruikerstoegangsrechten mag alleen worden gedaan met behulp van toegangsgroepen.



Met behulp van een knop Door subsystemen toegestane acties kunnen dienovereenkomstig worden gegroepeerd.



Machtigingenrapport

Om een ​​volledige lijst met gebruikerstoegangsrechten te zien, kunt u het analytische rapport gebruiken Rapport Gebruikersrechten.

Het rapport kan worden geopend vanaf een gebruikerskaart (gebruikersgroep) vanaf de pagina Toegangsrechten met behulp van de juiste knop.



Schakel het selectievakje in om een ​​gedetailleerd rapport te krijgen Toestemmingsgegevens, druk op de knop Formulier.

Het rapport toont alle informatie over de toegangsrechten van de gebruiker:

  • Infobase-gebruikerseigenschappen;
  • toegang tot de infobase, inlognaam, gebruikersnaam van het besturingssysteem en andere informatie;
  • Gebruikerstoegangsgroepen;
  • Groepsnaam, verantwoordelijke persoon, profiel;
  • Gebruikersrollen per profiel;
  • Objecten bekijken;
  • Objecten bewerken;
  • Bevat een tabel met 3 kolommen: Object/Rechten/Beperkingen, Toegangsgroep/Profiel/Rollen, Beperkingen op recordniveau/Toegangstypen en -waarden;
  • Rechten op objecten: Mappen.


Met behulp van standaardknoppen kan het rapport in het gewenste formaat worden afgedrukt of op een computer worden opgeslagen.

Een nieuw profiel maken voor toegangsgroepen

In sommige gevallen zijn vooraf gedefinieerde toegangsgroepprofielen niet voldoende om de vereiste gebruikerstoegangsrechten te configureren. In dergelijke gevallen heeft de beheerder de mogelijkheid om nieuwe toegangsgroepprofielen toe te voegen of vooraf gedefinieerde toegangsgroepprofielen te wijzigen.

Het toegangsgroepprofiel combineert verschillende rollen en bevat tevens een beschrijving van de soorten toegang waarvoor de beheerder rechten kan configureren met behulp van toegangsgroepen. Een profiel vertegenwoordigt dus een specifiek sjabloon volgens welke de beheerder toegangsgroepen onderhoudt.

Aan één profiel kunnen één of meer toegangsgroepen worden gekoppeld. Bijvoorbeeld op basis van profiel Reparatie werknemer toegangsgroepen kunnen worden geconfigureerd Het reparatiepersoneel van ons bedrijf En Reparatiepersoneel "Trading House", die van elkaar verschillen door respectievelijk de geautoriseerde organisaties “Onze Firma” en “Trading House”.

De lijst kan worden geopend met het overeenkomstige commando in de sectie Beheer – Gebruikers en rechten instellen – Toegangsgroepen.


Het veld gebruiken Show U kunt toegangsgroepprofielen selecteren uit de lijst:

  • Alle profielen;
  • Geleverd;
  • Niet geleverd;
  • Verouderd.

Om een ​​nieuw toegangsgroepprofiel in te voeren, gebruikt u de knop Creëren.


Wanneer u een nieuw profiel toevoegt, moet u eerst de rollen definiëren op basis van de behoeften van de doelgroep.

Een rol definieert een bepaalde reeks acties op programmaobjecten die een gebruiker kan uitvoeren. Rollen kunnen overeenkomen met verschillende functieverantwoordelijkheden (of soorten activiteiten) van programmagebruikers, en kunnen overeenkomen met kleinere functies. Vaak maken rollen het bekijken of bewerken van bepaalde gegevens in het programma mogelijk.

Aan elke gebruiker kunnen via profielen en toegangsgroepen één of meerdere rollen worden toegewezen, die samen zijn persoonlijke toegangsrechteninstellingen vormen.

In de regel wordt er onderscheid gemaakt tussen hoofd- en nevenprofielen.

Het hoofdprofiel beschrijft een bepaalde reeks toegangsrechten die voldoende zijn om een ​​bepaald werkgebied in het programma uit te voeren.

Met behulp van aanvullende profielen kunnen gebruikers naast het hoofdprofiel eventuele extra rechten krijgen.

In de hoofdprofielen is het belangrijk om een ​​reeks rollen te bieden die enerzijds geen buitensporige (ongewenste) toegang tot programmafuncties en gegevens bieden, en anderzijds voldoende zijn voor gebruikers om binnen de grenzen van het programma te kunnen werken. omvang van hun taken en verantwoordelijkheden. In het bijzonder dient het hoofdprofiel een aantal ondersteunende rollen te omvatten die niet direct verband houden met de hoofdactiviteit van de gebruiker, maar daarvoor wel noodzakelijk zijn.

Voor een magazijnmedewerker moet je bijvoorbeeld naast de rol voor het toevoegen en wijzigen van magazijndocumenten ook de volgende rollen in het profiel opnemen:

  • rol voor inloggen op het programma met behulp van een dunne, dikke of webclient;
  • vooraf gedefinieerde rollen Basisrechten En Basisrechten van de UV;
  • rollen voor het bekijken van mappen, waarvan elementen moeten worden geselecteerd in documentvelden, enz.

Wanneer u een nieuw toegangsgroepprofiel invoert, voert u dit in Naam.

Als er veel toegangsgroepprofielen zijn, kunnen deze worden gegroepeerd op basis van verschillende criteria. U kunt bijvoorbeeld de hoofd- en aanvullende toegangsgroepprofielen in afzonderlijke groepen scheiden, en u kunt ook toegangsgroepprofielen groeperen op basis van andere criteria.

Op het tabblad Toegestane acties (rollen) Gebruik de selectievakjes om een ​​of meer rollen te selecteren. Rollen worden meestal in alfabetische volgorde weergegeven.

Met behulp van de opdracht Door subsystemen menu Meer u kunt rollen gegroepeerd per subsysteem zien.

Met de bijbehorende knop kunt u de lijst weergeven Alleen geselecteerde rollen.



Vervolgens op het tabblad Toegangsbeperkingen er moet een besluit worden genomen over de samenstelling van de toegangstypen die in het profiel moeten worden gedefinieerd. Met type toegang bedoelen we een bepaalde regel waarbij toegang tot programmagegevens “toegestaan” is. Met hun hulp kunt u nauwkeuriger de grenzen configureren van het gegevensgebied waarmee leden van bepaalde toegangsgroepen mogen werken. In het eenvoudigste geval, als er geen type toegang in het profiel is opgenomen, worden de toegangsrechten tot gegevens alleen bepaald door rollen. Als het profiel bijvoorbeeld de rol bevat van het lezen van magazijndocumenten, hebben leden van toegangsgroepen de mogelijkheid om alle magazijndocumenten te bekijken. Maar als je naast deze rol ook een toegangstype aan je profiel toevoegt Organisaties, dan wordt het mogelijk om gebruikers alleen met documenten voor specifieke organisaties te laten werken; of omgekeerd, verberg documenten van bepaalde organisaties voor hen. Dus als de lijst met rollen in het profiel de vraag beantwoordt “wat zou beschikbaar moeten zijn en wat niet” (welke functies en gegevens van het programma), dan verduidelijken de soorten toegang precies hoe ze beschikbaar zouden moeten zijn (in termen van wat toegestane en verboden waarden). Het wordt aanbevolen om de samenstelling van toegangstypen in een profiel te bepalen op basis van overwegingen van flexibiliteit bij het instellen van toegangsrechten.

Voor elk type toegang dat in het profiel is opgegeven, kunt u een van de vier instellingsopties opgeven:

  • Ze zijn allemaal verboden, uitzonderingen worden toegewezen in toegangsgroepen– gebruikt in gevallen waarin standaard de toegang tot alle gegevens moet worden gesloten, maar machtigingen kunnen worden geconfigureerd voor individuele objecten in toegangsgroepen;
  • Ze zijn allemaal toegestaan, uitzonderingen worden toegewezen in toegangsgroepen– vergelijkbaar met de vorige optie, maar standaard zijn alle gegevens toegestaan ​​en kunnen uitzonderingen worden ingesteld voor individuele objecten in toegangsgroepen – verboden;
  • Ze zijn allemaal verboden, uitzonderingen worden toegewezen in het profiel– gebruikt wanneer toegangsgroepen niet de mogelijkheid moeten bieden om het type toegang te configureren; die. Alle instellingen moeten rechtstreeks in het profiel zelf worden gemaakt en kunnen niet in toegangsgroepen worden gewijzigd. Deze soorten toegang zijn verborgen in toegangsgroepen;
  • Ze zijn allemaal toegestaan, uitzonderingen worden toegewezen in het profiel- vergelijkbaar met de vorige optie.


Als deze functie in het programma is uitgeschakeld, is het toegangstype inactief en geeft het programma hierover onderaan het venster een bericht weer.

Om snel naar de lijst met toegangsgroepen te gaan die op basis van dit profiel zijn gemaakt, kunt u de opdracht op het navigatiepaneel gebruiken.

In deze lijst gebruikt u de knop Creëren u kunt nieuwe toegangsgroepen toevoegen met behulp van de overeenkomstige menuopdrachten Meer jij kunt ook Kopiëren, Wijziging, Markeren voor verwijdering bestaande.



Samenstelling van toegangsgroepprofielen

Om de toegangsrechten van gebruikers te configureren, beschikt de beheerder over de volgende profielen:

  • Beheerder- het instellen van gebruikerstoegangsrechten en het beheren van het programma. Inclusief rol Volledige rechten, die onbeperkte toegang tot alle gegevens biedt.
  • Accountant- bevat een reeks functies die nodig zijn voor het werk van een accountant (documenten extraheren voor de kasboekhouding);
  • Externe leverancier- bevat een reeks functies waarmee aannemers - leveranciers kunnen werken ();
  • Reparatie werknemer- omvat een reeks functies voor het werk van specialisten - technici van de IT-afdeling (werken met onderhouds- en reparatiedocumenten);
  • Magazijnmedewerker- bevat een reeks functies voor winkeliers (werken met magazijndocumenten).

Het zou natuurlijk leuk zijn om de toegang van elke applicatie tot uw persoonlijke gegevens te kunnen beperken. Als je dit echt wilt doen, dan zal ons artikel zeker nuttig voor je zijn. Dit geldt echter alleen voor gebruikers die het Android 4.3-besturingssysteem op hun apparaat hebben geïnstalleerd. Het was in de nieuwste versie van dit besturingssysteem dat er een zeer interessante functie verscheen waarmee je elke applicatie kunt beheren. Wees niet verbaasd dat je het nog nooit in je huis hebt gezien. Het is verborgen voor de ogen van gebruikers, maar vandaag zullen we u vertellen hoe u het kunt vinden en hoe u het kunt gaan gebruiken.

Deze optie heet "Application Operations"; het is niet eens een optie, maar een specifiek programma. Alleen staat het niet in de lijst met andere applicaties. Het kan slechts op twee manieren worden opgeroepen.

De eerste manier is het gebruik van een alternatief opstartprogramma. Wij adviseren u Nova Launcher te gebruiken. En dit is wat u moet doen:

1. Zoek eerst een lege ruimte op uw bureaublad en tik erop om een ​​submenu te openen. Selecteer uit alles wat erin staat “Snelkoppeling”:

2. Uit alle beschikbare snelkoppelingen moet u “Huidige acties” selecteren:

3. Klik in de actielijst op “Instellingen”:

5. En al in deze instellingen vindt u de optie of het programma "Bewerkingen in applicaties". Klik erop.

Hierna verschijnt een snelkoppeling genaamd “Instellingen” op uw bureaublad. Door erop te klikken, wordt er altijd een venster geopend met een programma voor het beheren van applicaties. Bovendien kunt u nu alle rechten van elke applicatie beheren.

De tweede manier om toegang te krijgen tot het Application Actions-programma is door een eenvoudig hulpprogramma te gebruiken genaamd QuickShortcutMaker. Het kan worden gevonden en gedownload in de Google Play Market-appstore.

Vervolgens installeert u dit hulpprogramma, voert u het uit en vindt u een item met de naam "Instellingen". Je vindt het op het allereerste tabblad “Acties” in het hoofdmenu van het programma. In deze instellingen vindt u opnieuw de regel “Bewerkingen in applicaties”. Door erop te klikken verschijnt er een snelkoppeling naar deze optie op uw bureaublad, waarna QuickShortcutMaker kan worden verwijderd, maar de snelkoppeling blijft bestaan.

Wat het programma zelf betreft voor het beheren van rechten in applicaties, het is vrij eenvoudig te gebruiken, omdat het menu in principe intuïtief is. In totaal bevat het menu vier tabbladen: “Locatie”, “Persoonlijke gegevens”, “SMS/MMS” en het apparaat zelf, dat lijsten bevat van alle geïnstalleerde applicaties. Vervolgens zoekt en selecteert u elke applicatie waarin u geïnteresseerd bent om de toegang tot uw gegevens te beperken, enz. En dan stel je zelf de gewenste beperkingen in.

Zoals je kunt zien, is alles heel eenvoudig. Het is vreemd dat niemand deze functie heeft aangekondigd. Hoogstwaarschijnlijk is dit programma nog in ontwikkeling en zal het in de toekomst samen met het hele applicatiebeheersysteem worden verbeterd.

Het is mogelijk dat gebruikers de volgende situatie tegenkomen: ze hebben enkele acties voor de applicatie beperkt, maar de applicatie zelf heeft hier geen idee van. Wanneer u deze applicatie in de toekomst start, kunnen er enkele fouten en fouten optreden, waardoor een correcte werking niet mogelijk is.

Een ander ding dat aan dit programma ontbreekt, is dat het zelf de applicatie laat weten dat deze of gene functie is uitgeschakeld. Het kan ook zijn dat sommige gebruikers vergeten dat ze iets hebben uitgeschakeld en denken dat de applicatie zelf de schuldige is.

Ik zou willen opmerken dat een soortgelijke optie al is geïmplementeerd en wordt gebruikt in de alternatieve firmware CyanogenMod, en dat de werking ervan geen serieuze aanpassingen vereist.

Afdrukken (Ctrl+P)

Toegang tot gegevens beperken

Met het mechanisme voor beperking van gegevenstoegang (ook bekend als RLS, Row Level Security) kunt u toegangsrechten niet alleen beheren op het niveau van metadata-objecten, maar ook op het niveau van 1C:Enterprise-databaseobjecten. Om de toegang tot gegevens te beperken, kunnen de volgende 1C:Enterprise-objecten worden gebruikt:
● rollen,
● sessieparameters,
● functionele opties,
● bevoorrechte gemeenschappelijke modules,
● trefwoord TOEGESTAAN in de zoektaal.
Het delen van de genoemde objecten zorgt voor maximale flexibiliteit wanneer het nodig is om de toegangsrechten tot gegevens te differentiëren tussen gebruikers die verschillende functies uitvoeren.
Beperkingen op de toegang tot gegevens kunnen worden opgelegd aan de volgende gegevensbewerkingen (toegangsrechten): lezen (Lees rechts), voeg toe (Toevoegen recht), wijzig (Wijzig recht) en verwijder (Verwijder recht). De huidige gebruiker kan de vereiste handeling in de volgende gevallen uitvoeren:
● Voor lees- en verwijderbewerkingen moet het object dat zich in de database bevindt, voldoen aan een beperking van de gegevenstoegang.
● Voor een toevoegbewerking moet de beperking van de gegevenstoegang overeenkomen met het object dat u naar de database wilt schrijven.
● Voor een wijzigingsoperatie moet de beperking van de gegevenstoegang zowel vóór de wijziging (zodat het object wordt gelezen) als na de wijziging (zodat het object wordt geschreven) overeenkomen met het object.
Houd er bij het toepassen van beperkingen voor gegevenstoegang rekening mee dat u slechts één voorwaarde kunt opgeven voor bewerkingen voor wijzigen, toevoegen en verwijderen, maar dat er voor een leesbewerking meer dan één beperking voor gegevenstoegang kan worden opgegeven. Dit betekent dat er verschillende voorwaarden kunnen worden gesteld voor het lezen van verschillende velden van een object, en dat u bij het stellen van een voorwaarde zowel de naam van een specifiek veld als het speciale veld Overige velden kunt opgeven. In het eerste geval wordt de voorwaarde alleen opgelegd als de selectie (die de gegevens leest) een veld bevat waarvoor de beperking is ingesteld, en in het tweede geval wordt de beperking opgelegd voor alle velden van het object, behalve voor velden waarvoor expliciet beperkingen zijn ingesteld.
Wanneer u een beperking op een specifiek veld instelt, wordt dit veld gelezen als aan de beperking wordt voldaan, en wanneer u een beperking op Andere velden instelt, worden de objectgegevens alleen gelezen als aan de beperking wordt voldaan voor alle velden van het object die zijn opgenomen in de verzoek om gegevens lezen.
Voor de volgende typen databaseobjecten kunnen verschillende beperkingen worden opgelegd aan verschillende soorten wijzigingen (toevoegen, wijzigen, verwijderen):
● Uitwisselingsplannen,
● Telefoonboeken,
● Documenten,
● Plannen voor soorten kenmerken,
● Rekeningschema's,
● Plannen voor berekeningstypen,
● Bedrijfsprocessen,
● Taken.
Voor de volgende typen databaseobjecten is het mogelijk om beperkingen op te leggen aan het lezen van niet alleen het gehele object, maar ook de afzonderlijke velden ervan:
● Uitwisselingsplannen,
● Telefoonboeken,
● Documenten,
● Documentlogboeken,
● Plannen voor soorten kenmerken,
● Rekeningschema's,
● Plannen voor berekeningstypen,
● Informatieregisters,
● Bedrijfsprocessen,
● Taken.
AANDACHT! Bij toegang tot de velden van databaseobjecten met behulp van de eigenschappen van applicatieobjecten uit de ingebouwde taal 1C:Enterprise, wordt het hele object gelezen, en niet alleen de waarde van het veld dat wordt gebruikt. De uitzondering is bij het ontvangen van een weergave, waarbij alleen de waarden van de velden die betrokken zijn bij het genereren van de weergave worden gelezen.
Toegangsbeperkingen zijn vastgelegd in rollen, ze kunnen worden gespecificeerd voor de meeste metadataobjecten en zijn geschreven in een speciale taal die een subset is van de querytaal.

Taal voor beperking van gegevenstoegang

Beperkingen voor gegevenstoegang worden beschreven in een speciale taal, die een subset is van de querytaal (gedetailleerde beschrijving van de querytaal). De beperkingstaal voor gegevenstoegang heeft de volgende wijzigingen ten opzichte van de querytaal:
● Bij een verzoek tot beperking van de toegang tot gegevens is er altijd één tabel als gegevensbron: dit is de tabel van het object waarop de beperking wordt toegepast (het hoofdobject van de beperking).
● De verzoekbeschrijving is ingekort. De taal voor beperking van gegevenstoegang gebruikt alleen de secties FROM en WHERE van de querytaal. De beschrijving van de zoektaal ziet er dus als volgt uit:
SELECTEER [TOEGELATEN] [VERSCHILLEND] [ EERST<Количество> ]
<Lijst met selectievelden>
[VAN <Список источников> ]
[WAAR<Условие отбора> ]
[GROEP DOOR <Поля группировки> ]
[HEBBEN<Условие отбора> ]
[VERANDEREN [ <Список таблиц верхнего уровня> ]]
Hoewel de beschrijving van de querytaal voor beperking van gegevenstoegang als volgt is:
[Tabelalias van het hoofdbeperkingsobject]
[VAN <Список источников> ]
[WAAR<Условие отбора> ]

In geneste zoekopdrachten die worden gebruikt in de taal voor beperking van gegevenstoegang, is de reeks toegestane mogelijkheden beperkt;
● U kunt sessieparameters en functionele opties opgeven als voorwaarde-elementen;
● Op elk moment in een verzoek om beperking van de toegang tot gegevens is het toegestaan ​​om sjablonen te gebruiken die schrijfbeperkingen vereenvoudigen.
Het belangrijkste deel van de beperking is een voorwaarde die wordt geëvalueerd voor elk record van de databasetabel waarvoor een beperking van de gegevenstoegang geldt. Een record wordt als beschikbaar beschouwd als als gevolg van de werking van de voorwaarde voor één tabelrecord van het hoofdobject van de beperking een niet-lege tabel wordt verkregen (dat wil zeggen een tabel met 1 of meer records). Als de voorwaarde resulteert in een lege tabel, wordt het record waarvoor op deze manier aan de voorwaarde is voldaan, als ontoegankelijk beschouwd. Bovendien wordt de tabelinvoer van het hoofdbeperkingsobject gewijzigd
wordt als geldig beschouwd als de invoer niet in strijd is met de beperking die voor het recht is opgegeven, zowel vóór als nadat de wijzigingsbewerking is uitgevoerd.

Tabelvelden

Bij beperkingen voor gegevenstoegang kunt u het volgende gebruiken:
● Tabelvelden van het object waarvoor de beperking van de gegevenstoegang wordt beschreven.
Als er bijvoorbeeld een beperking wordt opgelegd aan het lezen van elementen van de Tegenpartijen-directory, kan de beperking gebruik maken van de velden van de Tegenpartijen-directory en de tabellarische delen ervan. In het bijzonder kunnen de eenvoudigste beperkingen op het lezen van elementen van de Tegenpartijen-directory er als volgt uitzien:

WHERE Naam = “Baksteenfabriek”
Of zoals dit:

WAAR Producten.Naam= “De steen is rood”
Waar Producten het tabelgedeelte van de directory Aannemers is.
● Velden met tabellen met objecten die toegankelijk zijn via koppelingen in het hoofdbeperkingsobject.
Als het Main Manager-attribuut van de directory Contractors bijvoorbeeld een linktype heeft naar de directory Users, kan de toegangsbeperking bijvoorbeeld de volgende vorm hebben:

WAAR HoofdManager.Code= “Ivanov”
Of:

WAAR Hoofdmanager.Individuele.Naam= “Petrovsky”
● Velden van objecttabellen die zijn gekoppeld aan het hoofdobject van beperkingen door bepaalde voorwaarden en uitdrukkingen daarover.
De volgende beperking kan bijvoorbeeld worden opgelegd aan het lezen van elementen van de Tegenpartijen-directory:

Tegenpartijen
VAN
Directory.Tegenpartijen HOE Tegenpartijen
LINKER VERBINDING Directory.Gebruikers HOE Gebruikers
Software = Gebruikers.Naam
WAAR = “Petrovsky”
Deze beperking gebruikt de velden van de gebruikersdirectory-elementen die zijn gekoppeld aan dit element van de tegenpartijendirectory op basis van de waarde van de naamvelden.

Geneste zoekopdrachten

Geneste query's worden gebruikt om sets records te vormen die kunnen worden gebruikt:
● om te linken naar de tabel van het hoofdbeperkingsobject;
● voor gebruik als operand voor B- of NOT B-vergelijkingsbewerkingen.
Geneste query's kunnen alle functies van de querytaal gebruiken, behalve:
● operator IN HIËRARCHIE;
● RESULTATEN voorstellen;
● de resultaten van geneste zoekopdrachten mogen geen tabellarische delen bevatten;
● met name enkele virtuele tafels Overblijfselen en omzet.
In het volgende voorbeeld van een beperking op het lezen uit de map Accounts wordt een subquery gebruikt als een set records die moet worden gekoppeld aan het hoofdobject van de beperking:

Tegenpartijen
VAN
Directory.Tegenpartijen HOE Tegenpartijen
LINKER VERBINDING
(KIEZEN
Gebruikers.Naam, Gebruikers.Individueel
VAN
Directory.Gebruikers HOE Gebruikers
WAAR
Gebruikers.Code> “Petechkin”) AS-gebruikers
DOOR Tegenpartijen. Naam van de hoofdbeheerder = Gebruikers.Naam
WAAR Gebruikers.Individuele.Naam= “Petrovsky”
In het volgende voorbeeld ziet u een beperking bij het lezen uit de map Passport Data of Individuals, waarin een geneste zoekopdracht wordt gebruikt
als de operand van de vergelijkingsbewerking B:

WAAR
PaspoortgegevensIndividueel.Individueel IN
(KIES DIVERSEN
Werknemers.Individueel ALS INDIVIDU
VAN
Informatieregister. Werknemers ALS WERKNEMERS)
Als het in een geneste query nodig is om gegevens uit het tabelgedeelte te verkrijgen, dan moet u in de FROM-sectie van de geneste query rechtstreeks toegang krijgen tot het tabelgedeelte. In plaats van bijvoorbeeld:

SELECTEER Link ALS Link,
Producten.Naam HOE Productnaam
VAN Directory.Tegenpartijen
als een query die binnen een beperking is genest, moet u het volgende gebruiken:

Sessie Opties

Verzoeken om beperking van gegevenstoegang kunnen sessieparameters omvatten. Bijvoorbeeld om directory-elementen te lezen Groepen e-mailbrieven De volgende toegangsbeperkingen kunnen worden ingesteld:

WAAR Owner.AccountAccess.User = &Huidige gebruiker
EN Eigenaar.AccountAccess.Administratie= WAAR

CurrentUser is een sessieparameter

Functionele opties

Verzoeken om beperking van gegevenstoegang kunnen functionele opties omvatten. Er kunnen alleen parameteronafhankelijke functionele opties worden gebruikt. Als de Items-directory bijvoorbeeld het MainWarehouse-attribuut heeft, kan de beperking op het lezen van dit attribuut er als volgt uitzien:

WAAR &Magazijnboekhouding = WAAR

Waar Warehouse Accounting een functionele optie is

Kenmerken van gebruik

Niet alle velden van het hoofdbeperkingsgegevensobject mogen worden gebruikt in beperkingen voor de volgende typen databaseobjecten:
● in accumulatieregisters kunnen toegangsbeperkingen alleen metingen van het hoofdobject van de beperking bevatten;
● in boekhoudregisters mogen alleen balansmetingen van het hoofdobject van de beperking in beperkingen worden gebruikt.
OPMERKING. Indien onder voorwaarden van beperkte toegang tot de gegevens van het omzetcumulatieregister gebruik wordt gemaakt van metingen die niet in de totalen zijn opgenomen, dan
Bij toegang tot de virtuele omwentelingstabel worden de opgeslagen totalen niet gebruikt en wordt het verzoek volledig volgens de bewegingstabel uitgevoerd.

Toegangsbeperkingsacties

Toegangsbeperkingen worden gecontroleerd wanneer de juiste bewerkingen worden uitgevoerd op databaseobjecten (vanuit dialoogvensters, vanuit de ingebouwde taal, via query's) en kunnen op twee manieren werken:
● Alles. De “all”-methode houdt in dat een bepaalde bewerking op gegevens (vanuit dialoogvensters, vanuit een ingebouwde taal of via query's) moet worden uitgevoerd op alle databaseobjecten die door deze bewerking worden geïmpliceerd. Als een dergelijke bewerking het lezen of wijzigen van databaseobjecten vereist waarvoor niet aan de juiste toegangsbeperkingen wordt voldaan, wordt de bewerking beëindigd
abnormaal vanwege toegangsfout.
● Toegestaan. De "allowed"-methode houdt in dat bij het uitvoeren van een bewerking op gegevens alleen die databaseobjecten die aan de juiste toegangsbeperkingen voldoen, mogen worden gelezen. Databaseobjecten die niet voldoen aan de toegangsbeperkingen worden bij het uitvoeren van een dergelijke bewerking als ontbrekend beschouwd en hebben geen invloed op het resultaat van de bewerking.
Beperkingen voor gegevenstoegang worden opgelegd aan databaseobjecten op het moment dat 1C:Enterprise toegang krijgt tot de database. In de client-serverversie van 1C:Enterprise worden beperkingen toegepast op de 1C:Enterprise-server.
De werkwijze van de beperkingen die zijn gekozen om elke bewerking op gegevens uit te voeren, wordt bepaald door het doel van deze bewerking en de mate van verantwoordelijkheid van de resultaten ervan. In het bijzonder wordt de “toegestane” methode gebruikt bij het weergeven van dynamische lijsten en enkele andere interactieve acties. De “all”-methode wordt gebruikt bij het uitvoeren van bewerkingen met applicatieobjecten uit de ingebouwde 1C:Enterprise-taal, inclusief eventuele wijzigingen aan databaseobjecten. Daarom kunnen er bijvoorbeeld problemen optreden bij het construeren van een selectie voor de Select()-methode van beheerders van mappen, documenten en andere met daaropvolgende omzeiling van het resultaat als er een tamelijk complexe beperking wordt ingesteld op het overeenkomstige object, aangezien niet elke voorwaarde in de methode beperking van toegangsrechten kan adequaat worden weergegeven als een selectie voor de methode Select().
In query's kunt u bepalen hoe beperkingen voor gegevenstoegang werken. Voor dit doel biedt de zoektaal een trefwoord TOEGESTAAN. Als in het verzoek niet TOEGESTAAN wordt vermeld, zijn de beperkingen van toepassing op de “alles”-manier. Als het woord TOEGESTAAN is gespecificeerd, wordt de methode “toegestaan” geselecteerd.
Het is belangrijk dat als een query niet het trefwoord ALLOWED specificeert, alle selecties die in die query zijn opgegeven, niet in strijd mogen zijn met de leesbeperkingen voor de databaseobjecten die in de query worden gebruikt. Als de query bovendien virtuele tabellen gebruikt, moeten de overeenkomstige selecties op de virtuele tabellen zelf worden toegepast.
Voorbeeld:

KIEZEN
ContactInformatieSectionFirst.Introductie
VAN RegisterInformatie.ContactInformatie.SliceLast(, Type = &Type)
HOE ContactInformatieSliceFirst
WAAR
ContactInformationSliceFirst.Type = &Type
Bij gebruik van objecttechnologie wordt toegang tot gegevens in de ALLOWED-modus niet ondersteund. Er wordt aangenomen dat objecttechnologie wordt gebruikt voor de meest kritische bewerkingen op gegevens, inclusief het wijzigen ervan. Om alle gegevens te verkrijgen met behulp van objecttechnologie, ongeacht de ingestelde beperkingen, kunt u de noodzakelijke acties uitvoeren in een bevoorrechte module of namens een gebruiker met volledige rechten. Er zijn geen middelen om alleen toegestane gegevens te verkrijgen in de objecttechnologie.

Mechanisme voor het opleggen van beperkingen

Elke bewerking op gegevens die zijn opgeslagen in een database in 1C:Enterprise leidt uiteindelijk bij sommigen tot toegang tot de database
verzoek om gegevens in te lezen of te wijzigen. Tijdens het uitvoeren van zoekopdrachten naar de database leggen de interne mechanismen van 1C:Enterprise toegangsbeperkingen op. In dit geval:
● Er wordt een lijst met rechten gegenereerd (lezen, toevoegen, wijzigen, verwijderen), een lijst met databasetabellen en een lijst met velden die bij deze aanvraag worden gebruikt.
● Vanuit alle rollen van de huidige gebruiker worden gegevenstoegangsbeperkingen geselecteerd voor alle rechten, tabellen en velden die bij de aanvraag betrokken zijn. Als een rol bovendien geen beperkingen bevat op de toegang tot de gegevens van een tabel of veld, betekent dit dat de waarden van de verplichte velden uit elk record beschikbaar zijn in deze tabel. Met andere woorden: de afwezigheid van beperkingen op de toegang tot gegevens betekent de aanwezigheid van beperkingen
WAAR is de waarheid.
● Haalt de huidige waarden op van alle sessieparameters en functionele opties die betrokken zijn bij de geselecteerde beperkingen.
Om de waarde van een sessieparameter te verkrijgen, hoeft de huidige gebruiker geen toestemming te hebben om die waarde te verkrijgen. Als de waarde van een sessieparameter echter niet is ingesteld, treedt er een fout op en wordt de databasequery niet uitgevoerd.
Ontvangst van functionele opties wordt beïnvloed door de eigenschap Privileged Mode upon Receipt van de functionele optie.
Als deze eigenschap wordt gewist, moet de huidige gebruiker leestoegang hebben tot het object waarin de functieoptie is opgeslagen.
● Beperkingen die zijn afgeleid van één rol worden gecombineerd met behulp van de AND-bewerking.
● Beperkingen die voortkomen uit verschillende rollen worden gecombineerd met behulp van een OR-bewerking.
● De opgebouwde voorwaarden worden toegevoegd aan de SQL-query's waarmee 1C:Enterprise toegang krijgt tot het DBMS. Bij het benaderen van gegevens vanuit toegangsbeperkingsvoorwaarden wordt geen rechtencontrole uitgevoerd (noch voor metadata-objecten, noch voor database-objecten). Bovendien hangt het mechanisme voor het toevoegen van voorwaarden af ​​van de geselecteerde werkingsmethode van de beperkingen "alles" of "toegestaan".
"Alles"-methode
Bij het opleggen van beperkingen met behulp van de ‘all’-methode worden voorwaarden en velden toegevoegd aan SQL-query’s, zodat 1C:Enterprise informatie kan verkrijgen over de vraag of tijdens de uitvoering van een databasequery al dan niet gegevens zijn gebruikt die voor een bepaalde gebruiker verboden waren. Als er verboden gegevens zijn gebruikt, crasht het verzoek. Het opleggen van toegangsbeperkingen met behulp van de “all”-methode wordt schematisch weergegeven in figuur 2. 1:

Rijst. 1. “Alles”-methode

"Toegestaan"-methode
Bij het toepassen van beperkingen met behulp van de ‘allowed’-methode worden voorwaarden toegevoegd aan SQL-query’s, zodat records die verboden zijn voor de huidige gebruiker geen invloed hebben op het resultaat van de query. Met andere woorden, wanneer beperkingen worden opgelegd in de “toegestane” modus, worden records die voor een bepaalde gebruiker verboden zijn, als ontbrekend beschouwd, wat schematisch wordt weergegeven in figuur 3.

Andere objecten die verband houden met beperkingen voor gegevenstoegang

Bij het ontwerpen van configuraties die gebruikmaken van beperkingen voor gegevenstoegang, kunnen metagegevensobjecten zoals sessieparameters, functionele opties en gedeelde modules met een Privileged-vlag nuttig zijn.
Sessie Opties
Sessieparameters kunnen worden gebruikt bij beperkingen voor gegevenstoegang, op dezelfde manier waarop verzoekparameters in een verzoek kunnen worden gebruikt.
Functionele opties
Parameter-onafhankelijke functionele opties kunnen worden gebruikt bij beperkingen voor gegevenstoegang op dezelfde manier waarop queryparameters in een query kunnen worden gebruikt.
Bevoorrechte gemeenschappelijke modules

Als de Privileged-vlag wordt geselecteerd voor een gemeenschappelijke module, krijgt de uitvoering van procedures en functies van deze module belangrijke details:
● In de client-serverversie van 1C:Enterprise kan alleen de module die op de server wordt uitgevoerd, privileges krijgen.
● Uitvoering van procedures en functies van de bevoorrechte module en alles wat daaruit wordt aangeroepen, wordt uitgevoerd wanneer het beperkingssysteem is uitgeschakeld
rechten op zowel metadataobjecten als gegevens. Vanuit een bevoorrechte module kan dus elke bewerking worden uitgevoerd
objecten, zelfs als de huidige gebruiker niet over de juiste rechten beschikt.
Bevoorrechte modules zijn ontworpen om in eerste instantie de waarden in te stellen van sessieparameters die worden gebruikt bij beperkingen voor gegevenstoegang.
Meer algemene modules kunnen worden gebruikt voor enkele holistische acties op gegevens door een gebruiker met beperkte rechten.
Als de functies van de gebruiker bijvoorbeeld het invoeren en posten van documenten omvatten, maar de gebruiker geen toegang mag hebben tot gegevens die worden beïnvloed door het posten van documenten, kan de uitvoering van de boekingsbewerking worden verplaatst naar een bevoorrechte module. Hierdoor kan de gebruiker documenten plaatsen zonder hem rechten te verlenen op andere informatie (bijvoorbeeld registers).
Bevoorrechte modus
Het is mogelijk om programmatisch een bevoorrechte modus te installeren bij het werken met gegevens. Bevoorrechte modus programmatisch instellen
kan nodig zijn bij grootschalige operaties met infobase-gegevens, en het heeft geen zin om de toegangsrechten voor gegevens te controleren.
Zie hier voor een beschrijving van de bevoorrechte modus.

Het gebruik van de preprocessor

Bij het bewerken van de tekst van beperkingen voor gegevenstoegang is het mogelijk om preprocessorinstructies te gebruiken. De volgende instructies zijn beschikbaar:

#ALS<Выражение>#DAN
#ELSEIF<Выражение>#DAN
#ANDERS
#ENDSIF
<Выражение>– een willekeurige logische expressie in de ingebouwde taal, waarvan het resultaat van het type Boolean is. De uitdrukking kan het volgende bevatten:
● vergelijkingsoperaties<, >, <=, >= , =, <> ;
● logische bewerkingen AND, OR, NOT;
● sessieparameters – de syntaxis &Parameter wordt gebruikt, waarbij Parameter de naam van de sessieparameter is.
Als het resultaat van de expressie van de instructie #IF of #ELSEIF True is, bevat de resulterende tekst van de toegangsbeperkingsinstructie de tekst die zich achter het trefwoord #THEN bevindt. Als het resultaat van de expressie False is, wordt de tekst na het trefwoord #THEN niet in de tekst van de toegangsbeperkingsinstructie geplaatst. De tekst die volgt op de #ELSE-instructie wordt in de resulterende toegangsbeperkingstekst geplaatst als aan geen van de eerdere voorwaarden is voldaan.
OPMERKING. Als de tekst van een gegevenstoegangsbeperking preprocessorinstructies bevat, doorstaat een dergelijke beperking de syntaxiscontrole niet bij het bewerken en kan deze niet worden gewijzigd met behulp van de constructor.
Voorbeeld:

#IF &Huidigegebruiker<>“Klimova” #DAN
<текст ограничения доступа>
#ENDSIF
Hier Huidige gebruiker– sessieparametertype DirectoryLink.Gebruikers.
Dit ontwerp houdt in dat de voorwaarde voor het instellen van een toegangsbeperking wordt gecontroleerd voor alle gebruikers uit de directory, behalve voor de gebruiker Klimova.

Tekstsjablonen voor toegangsbeperkingen

Een rol kan een lijst met sjablonen voor toegangsbeperkingen bevatten, die worden beschreven op het tabblad Beperkingssjablonen van het rolformulier. U kunt ook sjablonen voor toegangsbeperkingen bewerken in de editor voor groepsbewerking van toegangsbeperkingen en sjablonen.
Elke sjabloon voor toegangsbeperking heeft een naam en tekst. De sjabloonnaam volgt de gebruikelijke regels voor namen die zijn aangenomen in het 1C:Enterprise-systeem.
De sjabloontekst bevat een deel van de tekst in de taal voor gegevenstoegangsbeperking en kan parameters bevatten die worden gemarkeerd met het symbool
“#”.
Na het symbool “#” kan volgen:
● Een van de trefwoorden:
● Parameter, waarna het nummer van de parameter in de sjabloon tussen haakjes wordt aangegeven;
● CurrentTable – geeft de invoeging in de tekst aan van de volledige naam van de tabel waarvoor de beperking wordt gebouwd;
HuidigeTabelnaam– geeft de invoeging in de tekst aan van de volledige naam van de tabel (als een tekenreekswaarde, tussen aanhalingstekens) waarop de instructie wordt toegepast, in de huidige versie van de ingebouwde taal;
●Naam van CurrentAccessRight – bevat de naam van het recht waarvoor de huidige beperking wordt toegepast: LEES/TOEVOEGEN/INSERT/WIJZIGEN/
UPDATEN, VERWIJDEREN;
● sjabloonparameternaam – betekent invoeging van de overeenkomstige sjabloonparameterbeperking in de tekst;
● “#”-symbool – geeft aan dat er één “#”-symbool in de tekst is ingevoegd.

Een toegangsbeperkingsexpressie kan het volgende bevatten:

● Sjabloon voor toegangsbeperking, die is gespecificeerd in het formaat
#TemplateName(“Waarde van sjabloonparameter 1”, “Waarde van sjabloonparameter 2”, ...). Elke sjabloonparameter staat tussen dubbele aanhalingstekens. Als u een dubbel aanhalingsteken in de parametertekst moet opgeven, moet u twee dubbele aanhalingstekens gebruiken.
● Functie Pagina bevat (waar we naar op zoek zijn, wat we zoeken). De functie is ontworpen om te zoeken naar een exemplaar van de WhatWeLook-reeks in de WhereWeLook-reeks. Retourneert True als de gebeurtenis wordt gevonden en anders False.

● De + operator voor tekenreeksaaneenschakeling.
Om het bewerken van de sjabloontekst eenvoudiger te maken, klikt u op het tabblad Beperkingssjablonen in het rolformulier op de knop Sjabloontekst instellen. Voer in het dialoogvenster dat wordt geopend de sjabloontekst in en klik op OK.
Het 1C:Enterprise-systeem controleert de syntaxis van sjabloonteksten, controleert de syntaxis van het gebruik van sjablonen en vervangt de teksten van sjablonen voor roltoegangsbeperkingen met macro's in de verzoektekst.
Vervanging van macrosjablonen is:
● het vervangen van parameters in de tekst van de sjabloon door parameterwaarden uit de uitdrukking voor het gebruik van de sjabloon in de tekst van de beperking;
● het vervangen van de sjabloongebruiksuitdrukking in de verzoektekst door de resulterende sjabloontekst.
Wanneer u de queryconstructor aanroept voor een voorwaarde die sjablonen voor toegangsbeperkingen bevat, wordt een waarschuwing gegeven dat alle sjablonen worden vervangen.
Hieronder volgen voorbeelden van beperkingssjablonen:

Om gebruikerstoegang tot gegevens flexibel te beheren op basis van functionaliteit bij het instellen van beperkingen voor gegevenstoegang, wordt dit aanbevolen
houden zich aan de volgende principes:
● Het is noodzakelijk om een ​​set informatie te selecteren (kan afhankelijk zijn van de huidige gebruiker) waarvoor voorafgaande voorbereiding geschikt is. De geselecteerde informatie moet enerzijds de beperkingen op de toegang tot gegevens zoveel mogelijk vereenvoudigen en anderzijds niet te groot zijn. Verdeel het volgens sessieparameters.
● Stel de waarden van sessieparameters in de SetSessionParameters()-handler van de sessiemodule in.
● Stel toegangsbeperkingen in voor de gegevens waarvoor dit gerechtvaardigd is (gegevens zijn geheim of het belangrijkst voor het behoud van de integriteit van het systeem). Houd er rekening mee dat het instellen van toegangsbeperkingen de toegang tot deze gegevens kan vertragen. Een buitensporige complexiteit van de beperkingen kan ook tot vertragingen leiden.
● Als het nodig is om ervoor te zorgen dat een bepaald beperkt aantal bewerkingen op gegevens wordt uitgevoerd door een gebruiker aan wie het niet praktisch is om volledige toegang tot deze gegevens te geven, verplaatst u deze acties naar bevoorrechte modules of schakelt u de bevoorrechte modus expliciet in en uit geschikte plaatsen in de programmacode.
● Gegevenstoegang voor verschillende controles die door het systeem worden uitgevoerd bij het schrijven van objecten in de bevoorrechte modus.

Hierdoor kunt u de machtigingsbeperkingen op recordniveau voor de overeenkomstige velden niet uitschakelen als de configuratie met deze gegevens werkt
alleen gepland in gecontroleerde modus:

● voor mappen bij het controleren van de ouder, eigenaar en uniciteit van de code;
● voor documenten, bedrijfsprocessen en taken bij het controleren van de uniciteit van het nummer;
● uitgeschakeld voor uitwisselingsplannen bij het controleren van de uniciteit van de code;
● voor rekeningschema's en diagrammen met kenmerkende typen bij het controleren van de ouder en het unieke karakter van de code.

Bij het maken van een gegevensbeperkingsquery zijn er enkele beperkingen en overwegingen waarmee u rekening moet houden:

● Als er beperkingen voor de toegang tot gegevens zijn gespecificeerd voor een objecttabel en een join met een dergelijke tabel wordt gebruikt in de gegevensquery, dan is in de verbindingsvoorwaarde (sectie met softwareverzoeken) het gebruik van het tabelgedeelte van het object met de opgegeven toegangsbeperking toegestaan. niet toegestaan.
● Als een query een tabel specificeert waarvoor geen velden in de query worden gebruikt, worden alle beperkingen voor gegevenstoegang aan deze tabel opgelegd. Opvragen bijvoorbeeld SELECTEER HOEVEELHEID(*) UIT Directory.Tegenpartijen wordt uitgevoerd rekening houdend met alle toegangsbeperkingen die zijn opgegeven voor de testmap. Beperkingen worden opgelegd “door OR”. Dit betekent dat alle records die onder minimaal één voorwaarde beschikbaar zijn, beschikbaar zijn. Als voor sommige velden geen voorwaarden zijn opgegeven, wordt de query uitgevoerd voor alle records in de tabel.
Als de query een tabel op het hoogste niveau gebruikt, worden de beperkingen die zijn opgegeven voor de kolommen met geneste tabellen niet opgelegd.
Als een query een geneste tabel gebruikt, gelden er beperkingen voor zowel de geneste tabel als de tabel op het hoogste niveau.
Opvragen bijvoorbeeld SELECTEER HOEVEELHEID(*) UIT Directory.Tegenpartijen.Overeenkomsten zal worden uitgevoerd rekening houdend met alle beperkingen voor de Tegenpartijenlijst, evenals rekening houdend met de beperkingen met betrekking tot het tabelgedeelte van de Overeenkomst.

● Als de toegang tot de velden die nodig zijn om een ​​representatie van het referentiemetagegevensobject te verkrijgen, wordt geweigerd door toegangsbeperkingen
gegevens of toegang tot het object wordt geweigerd op het niveau van de toegangsrechten, heeft het verkrijgen van een representatie van een dergelijk object geen invloed op de voortgang van de huidige transactie.

Constructor voor beperking van gegevenstoegang

Om de constructor in het tabelveld Gegevenstoegangsbeperkingen in de kolom Toegangsbeperkingen aan te roepen, moet u naar de bewerkingsmodus gaan en
Klik op de selectieknop en klik in het geopende formulier op de knop Querybouwer….
Het constructorformulier wordt op het scherm weergegeven:


Rijst. 3. Tabblad “Tabellen en velden” van de constraintontwerper

Met zijn hulp worden voorwaarden gecreëerd voor het instellen van beperkingen voor gegevenstoegang.
Selecteer op het tabblad Tabellen en velden de gewenste objecten in de databaselijst en verplaats ze naar de lijst Tabellen. Als er meerdere tabellen zijn opgegeven, wordt het tabblad Koppelingen toegevoegd aan het ontwerperformulier.


Rijst. 4. Tabblad “Links” van de constraintontwerper

Op het tabblad Koppelingen worden voorwaarden gevormd die worden opgelegd aan de koppelingen tussen tabelvelden. Om een ​​nieuwe voorwaarde in te voeren, klikt u op de knop Toevoegen en selecteert u een van de tabellen in de kolom Tabel1. Selecteer in de kolom Tabel2 de tabel waarvan de velden gerelateerd zijn aan de velden van de eerste. Onder de lijst met voorwaarden bevinden zich besturingselementen waarmee u een voorwaarde voor het koppelen van tabellen kunt maken.
Als een eenvoudig voorwaardetype is geselecteerd, worden in Veld1 en Veld2 de gerelateerde velden van de opgegeven tabellen geselecteerd en wordt de vergelijkingsvoorwaarde ingesteld. Als er velden zijn geselecteerd die niet worden vergeleken, wordt in de regel van de lijst met voorwaarden in de kolom Koppelingsvoorwaarde de tekst weergegeven: Onjuist ingevulde voorwaarde.
Op het tabblad Voorwaarden moet u, indien nodig, de voorwaarden opgeven waaronder de brongegevens worden geselecteerd.


Rijst. 5. Tabblad “Voorwaarden” van de constraintontwerper

Voor elk geselecteerd veld moet u het type voorwaarde selecteren en de naam van de parameter opgeven. De sessieparameter kan als parameter worden gebruikt. Er zijn meerdere voorwaarden toegestaan. In dit geval wordt in de kolom Conditie van het veld Conditietabel de voorwaardetekst op meerdere regels weergegeven.
Tijdens het aanmaken van een aanvraag kunt u op elk moment de tekst van de aanvraag bekijken door op de knop Aanvragen te klikken.

Batchbewerking van toestemmingsbeperkingen en sjablonen

De modus voor groepsbewerking van toegangsrechtenbeperkingen en sjablonen wordt opgeroepen door de opdracht Alle toegangsbeperkingen van het contextmenu van de tak Rollen. Het formulier dat wordt geopend bevat twee tabbladen: Toegangsbeperkingen en Beperkingssjablonen.


Rijst. 6 Alle toestemmingsbeperkingen en sjablonen

Op de bladwijzer Toegangsbeperkingen U kunt alle ingevoerde toegangsbeperkingen bekijken in een algemene lijst (voor alle rollen, objecten, rechten, veldcombinaties).
Het is mogelijk om toegangsbeperkingen voor meerdere rollen, objecten, rechten en combinaties van rollen tegelijk toe te voegen.
U kunt de lijst filteren op verschillende criteria.


Rijst. 7. Toegangsbeperkingen selecteren

Met de groepsbewerkingsmodus kunt u de in de lijst geselecteerde beperkingen verwijderen.
Het is mogelijk om geselecteerde beperkingen te bewerken. In dit geval kunt u de samenstelling van de velden en/of toegangsbeperkingen wijzigen.
Met de bulkbewerkingsmodus kunt u ook geselecteerde beperkingen naar andere rollen kopiëren.

Op de bladwijzer Beperkingssjablonen u kunt alle sjablonen voor toegangsbeperkingen zien die aanwezig zijn in de applicatieoplossing, terwijl uit de sjabloontekst zelf alleen de eerste 10 regels in de tabel worden weergegeven, die eindigen met het symbool "..." als de sjabloontekst meer dan 10 regels bevat. Het sjabloonbewerkingsvenster toont de volledige tekst van de sjabloon.


Fig 8. Alle sjablonen voor toegangsbeperkingen

Het is mogelijk om voor meerdere rollen tegelijk een sjabloon voor toegangsbeperking toe te voegen.

Het configuratieobject “rol” geeft een reeks rechten op bewerkingen (acties) via configuratieobjecten.

Rol "Volledige rechten".

Dit is slechts een rol (niet vooraf gedefinieerd) waarin alle soorten rechten op alle configuratieobjecten worden gecontroleerd.

Wat het onderscheidt van andere rollen is de aanwezigheid van het recht “Administratie”.

Als er ten minste één gebruiker is aangemaakt, begint het systeem te controleren op de aanwezigheid van het recht "Beheer" - minimaal één gebruiker moet dit hebben.

Toegangsbeperkingen op recordniveau

Row Level Security (RLS) – beperking op recordniveau.

Met het mechanisme voor beperking van de toegang tot gegevens kunt u de toegangsrechten niet alleen beheren op het niveau van metagegevensobjecten, maar ook op het niveau van databaseobjecten. De volgende objecten kunnen worden gebruikt om de toegang tot gegevens te beperken:

  • rollen,
  • sessieparameters,
  • functionele opties,
  • bevoorrechte gedeelde modules,
  • trefwoord TOEGESTAAN in de querytaal.

Het mechanisme is ontworpen om de toegang tot metadata-objecttabelrecords te beperken op basis van willekeurige voorwaarden die worden opgelegd aan de waarden van de rijvelden van deze tabellen. Als u bijvoorbeeld alleen gegevens wilt zien van ‘uw’ tegenpartijen, organisaties, enz.

Technische implementatie van toegangsbeperkingen in 1C

1C genereert een verzoek aan het DBMS. Het servercluster voegt een sectie WHERE toe aan het verzoek, dat de tekst bevat van de voorwaarde voor het beperken van de toegang via RLS. Vervolgens wordt dit verzoek naar het DBMS gestuurd en worden de geëxtraheerde gegevens teruggestuurd naar de 1C-client.


Dit mechanisme werkt voor elk verzoek van de klant:

  • in rapporten,
  • in dynamische lijsten en in reguliere lijstvormen
  • in aangepaste zoekopdrachten.

Een dergelijke implementatie van het mechanisme heeft een grote invloed op de prestaties.

Manieren om toegangsbeperkingen te omzeilen.

Bij grote resource-intensieve bewerkingen (bijvoorbeeld het verwerken van het opnieuw posten van documenten) kan een deel van de code worden verplaatst naar bevoorrechte modules.

A) Bevoorrechte module is een algemene module met de vlag “Privileged” in de eigenschappen.

Het bijzondere is dat de code erin wordt uitgevoerd zonder enige controle van toegangsrechten, inclusief RLS.


B) Ook bevoorrecht de modus kan worden ingeschakeld voor documentobjectmodules. Dit gebeurt in de documenteigenschappen, flag

  • Bevoorrechte behandeling tijdens het dirigeren
  • Bevoorrechte modus bij het annuleren van een transactie


B) Methode SetPrivilegedMode()

Met de systeemopdracht kunt u een deel van de code van elke module bevoorrecht maken.

Vanaf de volgende coderegel zal de geprivilegieerde uitvoeringsmodus werken.

Het zal werken tot de regel om deze modus uit te schakelen of tot het einde van de procedure/functie

(WAAR);

// elke code hier wordt uitgevoerd zonder rechtencontrole en RLS

Stel PrivilegedMode in(Leugen ); // of einde van procedure/functie

Het aantal keren dat de bevoorrechte modus is ingeschakeld, moet overeenkomen met het aantal keren dat deze is uitgeschakeld. Als echter binnen een procedure of functie de geprivilegieerde modus is ingeschakeld (een of meerdere keren), maar niet is uitgeschakeld, wordt het systeem automatisch uitgeschakeld zo vaak als er onvolledige inschakelingen zijn geweest in de resterende procedure of functie.

Als in een procedure of functie een methode wordt aangeroepen Stel PrivilegedMode in(False) heeft meer gedaan dan methodeaanroepen Stel PrivilegedMode in(True), dan wordt er een uitzondering gegenereerd

Functie Bevoorrechte modus() retourneert True als de bevoorrechte modus nog steeds is ingeschakeld, en False als deze volledig is uitgeschakeld. Hierbij wordt niet het aantal geprivilegieerde modusinstellingen in een bepaalde functie geanalyseerd.

Alle aangeroepen procedures en functies worden ook in de bevoorrechte modus uitgevoerd.


Het is ook mogelijk om een ​​bevoorrechte sessie te starten. Dit is een sessie waarin de bevoorrechte modus wordt ingesteld vanaf het allereerste begin van het systeem. Bovendien is tijdens bedrijf de methode Bevoorrechte modus() retourneert altijd True en de mogelijkheid om de bevoorrechte modus uit te schakelen wordt niet ondersteund. Alleen een gebruiker met beheerdersrechten (Administratierecht) kan een bevoorrechte sessie starten. De sessie kan worden gestart met behulp van de opdrachtregelschakelaar UsePrivilegedMode voor het starten van de clienttoepassing of de infobase-verbindingsreeksparameter prmod.


De vraag rijst natuurlijk: waarom zouden we überhaupt toegangsbeperkingen instellen als deze zo gemakkelijk kunnen worden omzeild?

Veilige modus.

Ja, u kunt externe verwerkingen schrijven met een bevoorrechte uitvoeringsmodus en gegevens verwijderen/beschadigen. Om dit te voorkomen beschikt het systeem over een globale contextmethode

StelSafeMode in().

De veilige modus negeert onder andere de bevoorrechte modus.

Het moet worden geïnstalleerd voordat programmatisch externe processors worden aangeroepen of procedures en functies uit hun modules worden geëxporteerd.

Bij het uitvoeren van verboden bewerkingen wordt er tijdens runtime een uitzondering gegenereerd.

Bovendien kunt u op het niveau van de rolinstellingen de mogelijkheid voor gebruikers uitschakelen om interactief externe rapporten en verwerkingen te starten.

Toegangsbeperkingen instellen

RLS kan alleen worden geconfigureerd voor rechten:

  • lezen (selecteren)
  • toevoegen (invoegen)
  • wijzigen (bijwerken)
  • verwijderen

Voor leesbewerkingen en verwijdering moet een object dat zich in de database bevindt, voldoen aan beperkingen voor gegevenstoegang.

Voor de optelbewerking De beperking van de gegevenstoegang moet overeenkomen met het object dat naar de database zal worden geschreven.

Voor wisselwerking de beperking van de gegevenstoegang moet zowel vóór de wijziging (zodat het object wordt gelezen) als na de wijziging (zodat het object wordt geschreven) aan het object voldoen.

Voor alle andere rechten bestaat een dergelijke optie niet.

Laten we een nieuwe beperking toevoegen voor het “lees”-recht van de directory “Nomenclatuur”. Er wordt een lijst met velden geopend waarvoor u de toegevoegde beperking kunt configureren.

Dit betekent dat als u toegang probeert te krijgen tot aangevinkte velden, de beperking wordt geactiveerd, maar als u probeert toegang te krijgen tot niet-aangevinkte velden, zal de beperking niet werken.

Als u de vlag selecteert " Andere velden", wordt de beperking geconfigureerd voor alle tabelvelden, behalve voor velden waarvoor expliciet beperkingen zijn ingesteld.


*Feature: voor rechten om toe te voegen, te wijzigen, te verwijderen:

  • De beperking kan alleen voor alle velden worden geconfigureerd.
  • Er kan slechts één beperking zijn.

Voor het recht “Lezen” kunt u verschillende voorwaarden configureren; deze worden gecombineerd met de logische operator “AND”.

Niet alle velden van het hoofdbeperkingsgegevensobject mogen worden gebruikt in beperkingen voor de volgende typen databaseobjecten:

  • in accumulatieregisters kunnen toegangsbeperkingen alleen metingen van het hoofdobject van de beperking bevatten;
  • in boekhoudregisters kunnen beperkingen alleen gebruik maken van balansmetingen van het hoofdobject van de beperking

Als, onder omstandigheden van beperkte toegang tot de gegevens van het circulerende accumulatieregister, metingen worden gebruikt die niet in de totalen zijn opgenomen, dan worden bij toegang tot de virtuele omwentelingstabel de opgeslagen totalen niet gebruikt en wordt het verzoek volledig uitgevoerd volgens de bewegingstafel.

Mechanisme voor het opleggen van toegangsbeperkingen.

Elke bewerking op gegevens die zijn opgeslagen in een database in 1C:Enterprise leidt uiteindelijk tot een oproep naar de database met een verzoek om de gegevens te lezen of te wijzigen. Tijdens het uitvoeren van zoekopdrachten naar de database leggen de interne mechanismen van 1C:Enterprise toegangsbeperkingen op. In dit geval:

  • Er wordt een lijst met rechten gegenereerd(lezen, toevoegen, wijzigen, verwijderen), een lijst met databasetabellen en een lijst met velden die door deze query worden gebruikt.
  • Vanuit alle rollen van de huidige gebruiker toegangsbeperkingen zijn geselecteerd naar gegevens voor alle rechten, tabellen en velden die bij de aanvraag betrokken zijn. Als een rol bovendien geen beperkingen bevat op de toegang tot de gegevens van een tabel of veld, betekent dit dat de waarden van de verplichte velden uit elk record beschikbaar zijn in deze tabel. Met andere woorden: de afwezigheid van een beperking op de toegang tot gegevens betekent de aanwezigheid van een beperking WAAR IS DE WAAR.
  • Haalt de huidige waarden op van alle sessieparameters en functionele opties deelnemen aan de geselecteerde beperkingen.

Om de waarde van een sessieparameter of functieoptie te verkrijgen, hoeft de huidige gebruiker niet het recht te hebben om die waarde te verkrijgen. Als de waarde van een sessieparameter echter niet is ingesteld, treedt er een fout op en wordt de databasequery niet uitgevoerd.

Beperkingen die uit één rol zijn afgeleid, worden gecombineerd met behulp van de AND-bewerking.

Beperkingen die zijn afgeleid van verschillende rollen worden gecombineerd met behulp van de OR-bewerking.

De opgebouwde voorwaarden worden toegevoegd aan de SQL-query’s waarmee 1C: Enterprise toegang krijgt tot het DBMS. Bij het benaderen van gegevens vanuit toegangsbeperkingsvoorwaarden wordt geen rechtencontrole uitgevoerd (noch voor metadata-objecten, noch voor database-objecten). Bovendien hangt het mechanisme voor het toevoegen van voorwaarden af ​​van de geselecteerde werkingsmethode van de beperkingen "alles" of "toegestaan".


*Feature: Als een gebruiker toegang heeft tot meerdere rollen met geconfigureerde beperkingen op recordniveau voor één object, dan worden in dit geval de voorwaarden van de beperkingen toegevoegd met behulp van de logische bewerking “OR”. Met andere woorden: de bevoegdheden van de gebruiker zijn cumulatief.

Dit leidt tot de volgende conclusie: laat de voorwaarden voor het beperken van de toegang tot één object in verschillende rollen elkaar niet kruisen, omdat in dit geval de tekst van het verzoek enorm ingewikkeld zal zijn en dit de prestaties zal beïnvloeden.

"Alles"-methode.

Bij het opleggen van beperkingen met behulp van de ‘all’-methode worden voorwaarden en velden toegevoegd aan SQL-query’s, zodat 1C:Enterprise informatie kan verkrijgen over de vraag of tijdens de uitvoering van een databasequery al dan niet gegevens zijn gebruikt die voor een bepaalde gebruiker verboden waren. Als er verboden gegevens zijn gebruikt, wordt het verzoek afgebroken vanwege een toegangsfout.

Het opleggen van toegangsbeperkingen met behulp van de “all”-methode wordt schematisch weergegeven in de figuur:


“Toegestaan”-methode.

Bij het toepassen van beperkingen met behulp van de ‘allowed’-methode worden voorwaarden toegevoegd aan SQL-query’s, zodat records die verboden zijn voor de huidige gebruiker geen invloed hebben op het resultaat van de query. Met andere woorden: wanneer er beperkingen worden opgelegd in de modus 'toegestaan', worden records die voor een bepaalde gebruiker verboden zijn, als ontbrekend beschouwd en hebben ze geen invloed op het resultaat van de bewerking, dat schematisch wordt weergegeven in de afbeelding:


Beperkingen voor gegevenstoegang worden opgelegd aan databaseobjecten op het moment dat 1C:Enterprise toegang krijgt tot de database.

In de client-serverversie van 1C:Enterprise worden beperkingen toegepast op de 1C:Enterprise-server.

Deze optie (ALLOWED) werkt echter niet als we in een query verwijzen naar een tabel waarvoor geen toegangsbeperkingen zijn geconfigureerd, maar die verwijzingen bevat naar tabelrijen met geconfigureerde beperkingen. In dit geval zal het zoekresultaat “<Объект не найден>......." in plaats van de waarde van het referentieveld.


Als u een rapport ontwikkelt of verwerkt met behulp van standaard of aangepaste configuratiequery's, Controleer altijd de vlag "Toegestaan". zodat het rapport werkt onder elke gebruiker met enige rechten.

Bij het objectlezen van gegevens uit de database is het niet mogelijk om de vlag “Toegestaan” in te stellen. Daarom is het noodzakelijk configureer selecties voor het lezen van objecten, rekening houdend met mogelijke beperkingen van toegangsrechten voor de gebruiker. Er zijn geen middelen om alleen toegestane gegevens te verkrijgen in de objecttechnologie.

Het is belangrijk dat als een query niet het trefwoord ALLOWED specificeert, alle selecties die in die query zijn opgegeven, niet in strijd mogen zijn met de leesbeperkingen voor de databaseobjecten die in de query worden gebruikt. Als de query bovendien virtuele tabellen gebruikt, moeten de overeenkomstige selecties op de virtuele tabellen zelf worden toegepast.

Oefening 1. Querybuilder in RLS-instellingen.

Laten we de tekst van de sectie "WHERE" in de zoekopdracht naar de map samenstellen. U kunt de querybuilder gebruiken.
De ontwerper heeft een uitgeklede uitstraling.


Tabblad “Tabellen”.

De hoofdtabel is de tabel van het object waarvoor de beperking wordt geconfigureerd.

U kunt ook andere tabellen selecteren en verschillende relaties daartussen instellen op het tabblad “Relaties”.

Tabblad "Voorwaarden"

Hier kunt u de daadwerkelijke voorwaarden voor toegangsbeperking configureren

Laten we voorwaarden toevoegen aan het ‘Prijs’-attribuut van de nomenclatuurdirectory voor het recht om te ‘lezen’ voor alle velden van de tabel.

“Nomenclatuur WAAR Nomenclatuur.Prijs > 500”

Laten we eens kijken hoe deze eenvoudige regel werkt. De directorytabel bevat de volgende elementen:


Na het instellen van een toegangsbeperking toont de tabel alleen elementen die aan de voorwaarde voldoen:


Groepen verdwenen ook. Laten we de tekst van de beperking wijzigen

“Nomenclatuur WAAR Nomenclatuur.Prijs > 500

OF-nomenclatuur.Dit is een groep"

Nou, dat is wat je nodig hebt.


Als u de weergave van het veld “code” in de lijstinstellingen verwijdert, worden alle elementen van de map weergegeven, d.w.z. de beperking werkte niet. Als u het veld “Code” zo instelt dat het wordt weergegeven, zal de beperking werken.


In dit geval kan het formulier, ondanks het feit dat het directory-element zichtbaar is in het lijstveld, niet worden geopend omdat er een beperking op het attribuut is geconfigureerd. Hetzelfde gebeurt bij een willekeurig verzoek: wanneer u probeert een "beperkte" eigenschap te verkrijgen, zal er een toegangsfout optreden.


Als u de "beperkte" gegevens programmatisch probeert op te halen, wordt er ook een toegangsfout gegenereerd.


Bovendien zal het niet mogelijk zijn om via een link toegang te krijgen tot velden van een object, omdat het systeem bij het ontvangen van een link het hele object leest, en als het “beperkte” details bevat, zal het object niet worden gelezen.

Daarom moet u bij het programmatisch werken met databaseobjecten rekening houden met mogelijke beperkingen op recordniveau en op verzoek alle benodigde objectgegevens verkrijgen en deze vervolgens in een structuur plaatsen of een deel van de code in een bevoorrechte module uitvoeren.

Na het instellen van de toegangsbeperking veranderde de weergave van de regel in de lijst met rechten: deze werd grijs en er verscheen een pictogram.

Beperkingen bij het instellen van toegang (RLS).

  • Er is geen Samenvatting-sectie;
  • Virtuele registertabellen zijn niet toegankelijk;
  • U kunt parameters niet expliciet gebruiken;
  • Kan worden gebruikt in geneste query's alle>/span> hulpprogramma's voor querytalen, behalve:
    • operator IN HIËRARCHIE;
    • RESULTATEN voorstellen;
    • geneste zoekopdrachtresultaten mag geen tafelonderdelen>/span> bevatten;
    • virtuele tafels, in het bijzonder Saldo's en Omzet

Oefening 2. Nomenclatuur met huidige prijs.

Stel een toegangsbeperking in als u artikelen wilt weergeven met een huidige prijs die hoger is dan een bepaalde waarde, bijvoorbeeld 100.

Oplossing:

We voegen een nieuwe toegangsbeperkingsregel toe voor de map “Nomenclatuur” met het recht “lezen”.
Selecteer “andere velden”.
In de constructor voegen we een geneste query toe. Selecteer daarin de informatieregistertabel “Artikelprijzen”.
Er is geen tabblad 'bestellen' - dit is een functie van de queryontwerper voor het maken van een toegangsbeperkingsverzoek.
Op het tabblad “Geavanceerd” stelt u “eerste 999999999” in, het tabblad “bestellen” verschijnt.
We hebben de volgorde ingesteld op het veld 'Periode' in aflopende volgorde.
Vervolgens zetten we via referentie een verbinding op tussen de hoofdtabel en de subquery.


Toegangsbeperkingssjablonen.

Praktijk 3. Beperking van “tegenpartijen” op basis van waarde in een constante.

Laten we een toegangsbeperking instellen voor de map Tegenpartijen op basis van de waarde die is opgeslagen in de Constant.

Bovendien moet u een beperking instellen voor alle objecten die in de details de map “Tegenpartijen” gebruiken.

Oplossing

Voor de map ‘Tegenpartijen’ stellen we een beperking in voor het ‘leesrecht’ door een geneste query toe te voegen aan de constante in de sectie ‘Voorwaarden’. Vergeet niet dat dit een groep is.

We zien een probleem: de directory Tegenpartijen wordt correct gefilterd en alle documenten met het attribuut “Tegenpartij” worden weergegeven, sommige met “gebroken” links in het attribuut “Tegenpartij”.

Nu moet u toegangsbeperkingen configureren voor alle objecten die de link naar “Accounts” gebruiken. Laten we ze vinden met behulp van de service "zoek naar links naar een object".

Laten we de tekst van de RLS-voorwaarde kopiëren en enigszins aanpassen vanuit de map “Tegenpartijen”. Dit moet zo vaak worden gedaan als er voorwerpen zijn gevonden.

Of gebruik een toegangsbeperkingspatroon om problemen met codeduplicatie te voorkomen.

Sjablonen voor toegangsbeperking worden op rolniveau geconfigureerd en kunnen voor elk object binnen de bewerkte rol worden gebruikt.

U kunt elk stukje tekst met toegangsbeperking aan de sjabloon toevoegen. De sjabloon wordt aangeroepen met het “#”-symbool. Bijvoorbeeld #TemplateContractor.

Via # in 1C worden instructies naar de preprocessor geschreven. In de context van het uitvoeren van toegangsbeperkingsinstellingen vervangt het platform de sjabloonaanroeptekst door de sjabloontekst.

Laten we de tekst na het woord WHERE toevoegen aan het sjabloon “Contractor Template”, behalve de tekst over EtoGroup.

Parameters in sjablonen voor toegangsbeperkingen.

Laten we doorgaan met het oplossen van probleem 2.

Het probleem is nu dat de hoofdtabel in de directory “tegenpartij” heet, in het document “Ontvangstfactuur”. Het veld dat in de directory wordt gecontroleerd, heet “link”, in het document heet het “Tegenpartij”.

Laten we de naam van de hoofdtabel in de sjabloontekst wijzigen in "#CurrentTable"

"#CurrentTable" is een vooraf gedefinieerde parameter.

En via een punt geven we het nummer van de invoerparameter aan - “.#Parameter(1)

“#Parameter” is ook een vooraf gedefinieerde waarde. Kan een willekeurig aantal invoerparameters bevatten. Ze worden geadresseerd op serienummer.

In de tekst van de toegangsbeperkingen voor de directory geven we het volgende aan:

Voor het document het volgende:

“Verkoop van goederen WAAR #TemplateCounterparty (“Tegenpartij”)”

Bij het aanroepen van een toegangsbeperkingssjabloon mogen parameters alleen als een tekenreeks worden doorgegeven, d.w.z. tussen aanhalingstekens.

Hoofdtabel - Nomenclatuur

De sjabloontekst is:

#CurrentTable WHERE #CurrentTable.#Parameter(1) = #Parameter(2)

De sjabloontekst bevat een deel van de tekst in de taal voor gegevenstoegangsbeperking en kan parameters bevatten die worden gemarkeerd met het “#”-symbool.

Het symbool "#" kan worden gevolgd door:

  • Eén van de trefwoorden:
    • Een parameter gevolgd door het nummer van de parameter in de sjabloon tussen haakjes;
    • CurrentTable – geeft de invoeging in de tekst aan van de volledige naam van de tabel waarvoor de beperking wordt gebouwd;
    • HuidigeTabelnaam– geeft de invoeging in de tekst aan van de volledige naam van de tabel (als een tekenreekswaarde, tussen aanhalingstekens) waarop de instructie wordt toegepast, in de huidige versie van de ingebouwde taal;
    • NaamCurrentAccessRight– bevat de naam van het recht waarvoor de huidige beperking wordt uitgevoerd: READ, ADD, INSERT, CHANGE, UPDATE, DELETE;
  • sjabloonparameternaam – betekent invoeging van de overeenkomstige sjabloonparameterbeperking in de tekst;
  • symbool “#” – geeft de invoeging van één teken “#” in de tekst aan.

Een toegangsbeperkingsexpressie kan het volgende bevatten:

  • Sjabloon voor toegangsbeperking, die is gespecificeerd in het formaat #TemplateName("Sjabloon parameterwaarde 1", "Sjabloon parameterwaarde 2",...). Elke sjabloonparameter staat tussen dubbele aanhalingstekens. Als u een dubbel aanhalingsteken in de parametertekst moet opgeven, moet u twee dubbele aanhalingstekens gebruiken.
  • Functie StrContains (WhereWeLook, WhatWeLook). De functie is ontworpen om te zoeken naar een exemplaar van de WhatWeLook-reeks in de WhereWeLook-reeks. Retourneert True als de gebeurtenis wordt gevonden en anders False.
  • De + operator voor tekenreeksaaneenschakeling.

Om het bewerken van de sjabloontekst eenvoudiger te maken, klikt u op het tabblad Beperkingssjablonen in het rolformulier op de knop Sjabloontekst instellen. Voer in het dialoogvenster dat wordt geopend de sjabloontekst in en klik op OK.

Ze kunnen niet worden geïnstalleerd met behulp van SetParameter() of iets soortgelijks.

De parameters zijn in dit geval:

  • Sessie Opties
  • Functionele opties

Het lezen van sessieparameters in een toegangsbeperkingsverzoek vindt plaats in de geprivilegieerde modus, dat wil zeggen zonder controle over de rechten om ermee te werken.

Praktijk 4. Toegang tot “uw” tegenpartijen

Het is noodzakelijk om de beperking van de toegang van de huidige gebruiker tot “hun” tegenpartijen te configureren.

Er is een directory “Gebruikers”, een directory “Tegenpartijen”, documenten met de details “Tegenpartij”.

De huidige gebruiker mag alleen gegevens zien van die tegenpartijen waarvoor met hem een ​​verbinding tot stand is gebracht.

Ook de communicatie moet worden geconfigureerd.

Mogelijke opties:

Het tot stand brengen van verbindingen tussen gebruiker en tegenpartij

  • Details in het tegenpartijenoverzicht
  • Register van informatie

Mogelijke oplossingen voor het probleem:

  • Het opslaan van een gebruiker in een constante is een slechte optie; de ​​constante is voor alle gebruikers beschikbaar.
  • Het opslaan van een vaste reeks van de tegenpartijen van de huidige gebruiker in de sessieparameters is geen erg goede optie; er kunnen veel tegenpartijen zijn
  • Het opslaan in de sessieparameters van de huidige gebruiker en vervolgens het opvragen van een lijst van “zijn” tegenpartijen is een acceptabele optie.
  • Andere opties.

Oplossing.

Laten we een nieuwe sessieparameter "CurrentUser" maken en deze invullen in de sessiemodule.

Laten we een register met informatie maken “Compliance van managers en aannemers”

Laten we een nieuwe rol aanmaken en daarin een nieuwe toegangsbeperking voor het document “Factuur”.

In de tekst van het verzoek verbinden we de hoofdtabel met het informatieregister voor Account = Account en Manager = &Huidige gebruiker. Verbindingstype Intern.

Indien mogelijk is het beter om geneste zoekopdrachten in toegangsbeperkingsteksten te vermijden, aangezien deze telkens worden uitgevoerd wanneer gegevens uit dit object uit de database worden gelezen.

Controleren - de beperkingen werken

*Feature: Als u de lijst met tegenpartijen van gebruikers in het register wijzigt, worden de toegangsbeperkingen onmiddellijk van kracht zonder dat de gebruikerssessie opnieuw hoeft te worden gestart.

Praktijk 5. Datum van verbod op wijzigingen.

Het is noodzakelijk om vóór de vastgestelde datum voor het verbieden van wijzigingen een beperking op het bewerken van gegevens in te voeren.
Je moet het beperken voor gebruikers.

Laten we een register maken met informatie "Data van verbod op wijzigingen" met de dimensie Gebruiker, bron Datum van verbod.

Laten we de logica van de oplossing op deze manier opbouwen:

  • als er geen gebruiker is opgegeven, geldt de ban voor alle gebruikers
  • als er een beperking is voor alle gebruikers en een beperking voor een specifieke gebruiker, dan geldt de beperking voor een specifieke gebruiker, en voor anderen volgens het algemene principe.

Uiteraard kan een dergelijke beperking worden geconfigureerd voor databaseobjecten die een bepaalde positie op de tijdas hebben. Het zou kunnen

  • Documenten
  • Periodieke informatieregisters

Laten we een nieuwe rol creëren: 'Beperkingen op datum van verbod op wijzigingen'.

Daarin voegen we voor het document “Factuur” voor de juiste “wijziging” een nieuwe toegangsbeperking toe.

We specificeren de instelling voor alle velden.

De tekst van de beperking is:

ReceiptInvoice VAN Document.ReceiptInvoice AS ReceiptInvoice

Wijzig de verbanningsdatum ALS verbanningsdatum
VAN

BINNENSTE JOIN (SELECT
MAX(Verboden data wijzigen. Gebruiker) AS gebruiker
VAN
Informatieregister. Data van verbod op wijzigingen AS Data van verbod op wijzigingen
WAAR
(Wijzig verboden datums. Gebruiker = &Huidige gebruiker
OF Data ProhibitedChanges.User = VALUE(Directory.users.EmptyLink))) AS VZ_User
BY Datum van verbod op wijzigingen.Gebruiker = VZ_User.User) AS NestedQuery
Softwareontvangst Factuurdatum > Geneste query.Bandatum

Laten we eens kijken: de beperking werkt.

Preprocessor-instructies gebruiken

#Als voorwaarde1 #Dan

Vraag fragment 1 aan

#ElseIf Conditie2 #Then

Vraag fragment 2 aan

#Anders

Vraagfragment 3 aan

#EindAls

Onder voorwaarden kunt u logische bewerkingen gebruiken (en, of, niet, enz.) en toegang krijgen tot sessieparameters.

Deze aanpak in het kader van het construeren van toegangsbeperkingen is handig omdat, afhankelijk van de omstandigheden, een kortere verzoektekst wordt opgesteld. Een eenvoudiger zoekopdracht belast het systeem minder.

Het nadeel is dat de queryconstructor niet met dergelijke tekst zal werken.

*Eigenaardigheid:

In tegenstelling tot de instructies voor de preprocessor van de ingebouwde taal in de toegangsbeperkingsteksten, moet je vóór de operator Dan een hash plaatsen - #Then

Oefening 6. Schakel over naar “Gebruik RLS”

Laten we ons systeem van beperkingen aanvullen met een schakelaar die het gebruik van beperkingen op recordniveau in- of uitschakelt.

Om dit te doen, voegt u een constante en een sessieparameter met de naam “UseRLS” toe.

Laten we in de sessiemodule schrijven om de waarde van de sessieparameter in te stellen op basis van de waarde van de constante.

Laten we de volgende code toevoegen aan alle toegangsbeperkingsteksten:

“#Als &GebruikRLS #Dan….. #EndIf”

Wij controleren - alles werkt.

Na het inschakelen van de vlag ‘gebruik radar’ zullen de wijzigingen echter niet onmiddellijk van kracht worden. Waarom?

Omdat de sessieparameter wordt ingesteld wanneer de sessie wordt gestart.

Het is mogelijk om de waarde van de sessieparameter in te stellen die moet worden gereset wanneer een nieuwe constante waarde wordt geschreven, maar dit werkt alleen voor de huidige gebruikerssessie. Andere gebruikers moeten worden gevraagd het systeem opnieuw op te starten.


Einde van het eerste deel.

"Toegangsbeperkingen zijn gewijzigd." Deze boodschap is vaak te zien op de schermen van hun smartphones door bezitters van toestellen uit de Moto X-, Moto G- en Nexus-modelfamilies. Deze waarschuwing verschijnt zo nu en dan in de meldingenschuif en verdwijnt dan weer. Bovendien wordt het probleem niet veroorzaakt door een fout in de software of hardware van het Android-toestel, het is slechts een simpele melding van de noodoproepfunctie op de telefoon. Ondanks het feit dat deze melding absoluut onschadelijk is, irriteert het gebruikers en maakt ze zelfs bang. Voor niet-geïnformeerde mensen kan de zinsnede “Toegangsbeperkingen zijn gewijzigd” van alles betekenen, inclusief het blokkeren van datatransmissie of spraakdiensten.

Is er een manier om van de " Toegangsbeperkingen gewijzigd"? Nee. Moet je er op een bepaalde manier op reageren? Soms is het de moeite waard. Als u de mogelijkheid bent kwijtgeraakt om sms-berichten te verzenden of oproepen te ontvangen, kan een eenvoudige herstart de situatie verhelpen. Er kan ook een foutmelding verschijnen als u gedurende de dag te vaak een defecte SIM-kaart hebt gebruikt of kaarten in sleuven heeft verwisseld. De melding verschijnt ook wanneer het netwerk verandert, d.w.z. van 2G naar 3G of 3G naar 4G en omgekeerd. En dit alles verschijnt vooral bij het gebruik van mobiele data en verdwijnt bij verbinding met een Wi-Fi-netwerk. Over het algemeen is het grootste probleem het verlies van het netwerk of het overschakelen van 3G naar 2G - voor gebruikers die een mobiel netwerk nodig hebben met snelle gegevensoverdrachtmogelijkheden.

Hoe kom ik af van de melding ‘Toegangsbeperkingen zijn gewijzigd’ op een Android-smartphone?

Methode 1: Blokkeer meldingen op uw telefoon met een app van derden
Voordat u deze methode gebruikt, moet u controleren of uw Android-apparaat een ingebouwde functie heeft om meldingen uit te schakelen. Deze functie is mogelijk beschikbaar voor smartphones met en, maar sommige systeemversies bieden hier mogelijk geen toegang toe.


Als u rootrechten heeft op uw Android-smartphone, kunt u het probleem eenvoudig oplossen. U kunt apps downloaden die de melding ‘Toegangsbeperkingen zijn gewijzigd’ blokkeren. Om dit te doen moet je doen volgende stappen:


Nu hoeft u alleen nog maar het apparaat opnieuw op te starten en te kijken of de fout is opgelost. In de app voor het blokkeren van meldingen vindt u verschillende telefoonpictogrammen. Als de bovenstaande stappen niet helpen, probeer dan de meldingen voor alle telefoonpictogrammen in de applicatie uit te schakelen.