Protezione dei database > Creazione e modifica dei set di privilegi > Modifica dei privilegi di accesso ai record
 
Modifica dei privilegi di accesso ai record
I set di privilegi possono limitare l'accesso ai record in un file. Per un file, è possibile impostare:
Privilegi per tutte le tabelle: è possibile limitare la possibilità da parte di un set di privilegi di consentire la creazione, la modifica e l'eliminazione dei record in tutte le tabelle di un file.
Privilegi personalizzati per le singole tabelle: è possibile impostare limiti di accesso ai singoli record per ciascuna tabella. Ad esempio, il set di privilegi può limitare la possibilità di:
Visualizzare, modificare, creare o eliminare tutti i record in ogni tabella.
Visualizzare, modificare ed eliminare alcuni record in ogni tabella. I privilegi vengono limitati in base alle formule di calcolo che forniscono risultati Booleani per ogni record. Quando il calcolo produce un valore Vero, viene garantito l'accesso per quella particolare attività (come la visualizzazione del record). Quando il calcolo produce un valore Falso, l'accesso all'attività viene negato.
Accedere a o modificare alcuni campi in ogni tabella. Se si limita l'accesso a uno o più campi in una tabella che in caso contrario sarebbe visibile, l'utente visualizza <Nessun accesso> invece dei dati del campo.
È possibile impostare solo i privilegi di accesso ai record di tabelle definite nel file corrente. Se il file contiene relazioni a tabelle in altri file che si desidera proteggere, è necessario creare account e set di privilegi negli altri file per proteggere quelle tabelle. Vedere Account, set di privilegi e privilegi estesi.
Per modificare i privilegi di accesso ai record per tutte le tabelle:
1. Iniziare a modificare un set di privilegi nuovo o uno esistente nella finestra di dialogo Modifica set privilegi.
Vedere Creazione e modifica dei set di privilegi.
2. Nell'area Accesso ai dati e definizione, in Record selezionare un'opzione.
 
Per modificare il set di privilegi in modo da
Scegli
Consentire la creazione, la modifica e l'eliminazione dei record in tutte le tabelle
Crea, modifica ed elimina in tutte le tabelle
Consentire solo la creazione e la modifica dei record (proibisce l'eliminazione) in tutte le tabelle
Crea e modifica in tutte le tabelle
Consentire solo la visualizzazione dei record (proibire la creazione, la modifica e l'eliminazione die record) in tutte le tabelle
Visualizza solo in tutte le tabelle
Proibire l'accesso ai record in tutte le tabelle
Nessun accesso
3. Fare clic su OK, quindi su OK nella finestra di dialogo Gestisci sicurezza.
Oppure, per assegnare il set di privilegi a uno o più account, vedere Creazione e modifica degli account.
Per modificare i privilegi di accesso ai record per le singole tabelle:
1. Iniziare a modificare un set di privilegi nuovo o uno esistente nella finestra di dialogo Modifica set privilegi.
Vedere Creazione e modifica dei set di privilegi.
2. Nell'area Accesso ai dati e definizione, in Record selezionare Privilegi personalizzati.
3. Nella finestra di dialogo Privilegi record personalizzati, selezionare una o più tabelle in cui si desidera modificare i privilegi personalizzati. (oppure selezionare qualsiasi nuova tabella per impostare i privilegi in qualsiasi tabella creata in un secondo tempo).
4. Per impostare privilegi personalizzati per visualizzare, modificare, creare ed eliminare record, selezionare una delle seguenti opzioni dalle liste Visualizza, Modifica, Crea ed Elimina nell'area Set di privilegi:
 
Scegli
Per
Permettere il privilegio (visualizzazione, modifica, creazione o eliminazione record).
Limitati (disponibile quando è selezionata una sola tabella)
Permettere o proibire il privilegio (visualizzazione, modifica ed eliminazione record) per alcuni record nella tabella.
Nella finestra di dialogo Specifica il calcolo, inserire un calcolo e fare clic su OK. Vedere Inserimento di una formula per limitare l'accesso in base al record di seguito.
No
Proibire il privilegio (visualizzazione, modifica, creazione o eliminazione record).
Nota  Evitare di creare combinazioni incoerenti nella visualizzazione, modifica, creazione ed eliminazione di privilegi. Ad esempio, è possibile voler impedire agli utenti di eliminare record che non possono visualizzare.
5. Per limitare l'accesso o la modifica di alcuni campi in una tabella, continuare con il passo successivo. In caso contrario, fare clic su OK e andare al passo 9.
6. Selezionare la tabella che contiene i campi per i quali si desidera limitare l'accesso. Quindi, per Accesso al campo, selezionare Limitati.
7. Nella finestra di dialogo Privilegi campi personalizzati, selezionare ogni campo per cui si desidera limitarel'accesso (oppure selezionare Qualsiasi nuovo campo per impostare i privilegi personalizzati per ogni campo creato in un secondo tempo). Quindi selezionare una delle seguenti opzioni:
 
Scegli
Per
Modificabile
Permettere la visualizzazione e la modifica dei dati campo.
Solo visualizzazione
Permettere la visualizzazione dei dati campo. (non è consentita la modifica dei dati campo).
Nessun accesso
Proibire l'accesso al campo.
Nota  Se si proibisce l'accesso a uno o più campi in una tabella che in caso contrario sarebbe visibile, l'utente visualizza <Nessun accesso> invece dei dati del campo.
8. Fare doppio clic su OK.
Viene visualizzata la finestra di dialogo Modifica set privilegi.
9. Fare clic su OK, quindi di nuovo su OK nella finestra di dialogo Gestisci sicurezza.
Note 
Gli utenti che non possono visualizzare alcuni record possono comunque ancora scorrerli, ma visualizzando <Nessun accesso> invece dei dati del campo all'interno di ciascun record.
Se viene limitato l'accesso a record, campi e tabelle in un file, verranno influenzate molte funzioni in FileMaker Pro. La seguente tabella riassume gli effetti per alcune funzioni.
 
Funzione
Effetto di limitare l'accesso ai dati
Riferimenti e nuovi riferimenti
I riferimenti e nuovi riferimenti sono definiti da tre componenti, che possono essere tutti influenzati dai privilegi di accesso ai dati:
I campi di confronto utilizzati nella relazione devono avere almeno i privilegi di visualizzazione. Inoltre, non si verifica nessuna relazione per tutti i record che non possono essere visualizzati in entrambe le tabelle, di origine e di destinazione, perché il confronto non può verificarsi in queste circostanze. compreso il primo record corrispondente correlato e qualsiasi record utilizzato per copiare il valore successivo più alto o più basso.
Il campo di origine per la relazione deve avere almeno i privilegi di visualizzazione.
Il campo destinazione per la relazione deve avere i privilegi di modifica.
FileMaker Pro non visualizza un messaggio di errore se la funzione di relazione salta alcuni record per via delle restrizioni relative ai privilegi di accesso.
Accesso ai dati correlati
Entrambi i campi di confronto in una relazione devono avere almeno i privilegi di visualizzazione per poter far funzionare la relazione. Tutti i campi correlati che si desidera visualizzare, che si basano su campi di confronto, devono avere almeno i privilegi di visualizzazione.
Trova
Il gruppo trovato è sempre filtrato per visualizzare solo i record che hanno almeno i privilegi di visualizzazione. Anche i risultati di Get ( ContoTrovati ) function sono condizionati se l'accesso è limitato.
Se una lista valori si basa sul contenuto di un campo e i privilegi di visualizzazione sono proibiti sul campo, la lista valori non visualizza nessun risultato. Ciò accade per evitare che gli utenti accedano inavvertitamente a informazioni confidenziali. Anche i risultati della funzione ElementiListeValori sono nascosti quandol'accesso è limitato.
I risultati visualizzati nei campi Riassunto e quelli dei campi calcolati che riassumono più record escludono i dati dai record per i quali sono stati proibiti i privilegi di visualizzazione.
Trova/Sostituisci, Sostituisci contenuto e controllo ortografico
Un utente può cambiare solo i dati che utilizzano queste funzioni in:
record che hanno privilegi di modifica
campi che sono modificabili
Script
È possibile impostare un'opzione per eseguire uno script con privilegi di Accesso completo che consente di eseguire le operazioni che un utente con privilegi limitati di solito non potrebbe fare. Se non si attiva questa opzione, ogni istruzione di script con cui si tenta di accedere o modificare i dati fallisce. Vedere Creazione e modifica degli script.
Apple Event
Privilegi di accesso ai dati possono influenzare la possibilità di un utente ad ottenere, impostare ed eliminare i dati utilizzando Apple Event. Alcuni comandi Apple event possono fallire se l'utente non ha privilegi di accesso appropriati.
Inserimento di una formula per limitare l'accesso in base al record
Per permettere o proibire i privilegi di visualizzazione, modifica ed eliminazione di alcuni record in una tabella, è necessario definire un calcolo booleano che stabilisca quali privilegi sono consentiti. Per ogni record nel database, l'accesso viene consentito quando il risultato del calcolo è Vero o diverso da zero, e l'accesso viene negato quando il risultato del calcolo è Falso o di valore 0. Ecco due esempi:
Per limitare l'accesso solo a quei record creati dall'account corrente: Definire un campo Testo Record_creato_da e impostare l'opzione di immissione automatica per il campo in modo da inserire automaticamente il nome account quando viene creato il record. (Vedere Definizione dell'immissione automatica dei dati). Utilizzare poi il seguente calcolo quando vengono definiti i privilegi di accesso ai record personalizzati:
Record_Creato_da = Get ( NomeAccount )
L'utente potrà solo esaminare i record che risultano avere un valore Vero.
Per limitare l'accesso solo per quei record che corrispondono alla data corrente: Definire un campo Data Data_creazione_record e impostare l'opzione di immissione automatica per il campo in modo da inserire automaticamente la data di creazione quando viene creato il record. (Vedere Definizione dell'immissione automatica dei dati). Utilizzare poi il seguente calcolo quando vengono definiti i privilegi di accesso ai record personalizzati:
Record_creato_il = Get ( DataCorrente )
L'utente potrà solo esaminare i record che risultano avere un valore Vero.
Suggerimento  Se si specifica un calcolo per proibire la visualizzazione di alcuni record in una tabella, nella maggior parte dei casi è necessario utilizzare lo stesso calcolo per proibire la modifica e la cancellazione dello stesso dipo di record. In caso contrario, è possibile permettere involontariamente agli utenti di modificare o eliminare i record che essi non possono visualizzare.
Note 
Il calcolo booleano che determina i privilegi di accesso ai record può dare risultati non previsti, soprattutto se si basa su un campo che può essere modificato dall'utente. Ad esempio, un utente con privilegi di accesso solo per alcuni record può involontariamente impedire a se stesso l'accesso ad un record dopo averlo modificato. L'utente potrebbe apportare una modifica al contenuto di un record cambiando il risultato del calcolo booleano per l'accesso ai record in Falso; quindi, una volta uscito, l'utente non sarebbe più in grado di visualizzare, modificare o eliminare il record.
Dato che le modifiche hanno effetto non appena un utente esce da un record, un utente che fà modifiche di questo tipo non può ritornare al record. (Nella maggior parte dei casi, è possibile basare i calcoli di accesso ai record sui campi che non sono direttamente modificabili dagli utenti come per es. campi ad immissione automatica che contengono nomi account, date di creazione o dati di modifica ).
Inoltre, se il file è condiviso e il calcolo booleano che determina i privilegi di accesso ai record contiene uno o più campi globali, si possono migliorare le prestazioni di rete spostando alcuni di questi campi in una tabella a parte. Vedere la sezione Note in Definizione di campi globali (campi con memorizzazione globale).
Per supportare completamente più finestre che hanno i loro gruppi trovati, i valori di riassunto costituiscono una parte del gruppo trovato. Un record può apparire in più finestre, e ogni finestra ha il suo gruppo trovato e il suo ordine. Per questi motivi, non basare i privilegi di calcolo sulle funzioni Get o di riassunto che si basano su valori che utilizzano un particolare gruppo trovato.