Masque de caractère des données de sortie sur une sélection de
Je suis à l'aide de SQL Server 2008.
Je tiens à caractère masque les données de sortie d'une requête.
C'est mes données à partir d'une colonne sur une table lors d'un select:
column1
384844033434
743423547878
111224678885
Je voudrais une sortie comme celle-ci:
column1
384xxxxxx434
743xxxxxx878
111xxxxxx885
Comment puis-je faire cela?
On dirait que vous parlez à propos de caractère de masquage plutôt que de chiffrement
oui, c'est le caractère de masquage
oui, c'est le caractère de masquage
OriginalL'auteur pyram | 2012-12-12
Vous devez vous connecter pour publier un commentaire.
Que vous auriez à utiliser une vue, et de refuser à tous les utilisateurs, SÉLECTIONNEZ l'accès à la table sous-jacente.
Votre point de vue ressemblerait à quelque chose comme
Vous pouvez accorder à vos utilisateurs de SÉLECTIONNER l'accès à tout ce point de vue et ont le masqués comme vous l'avez décrit.
Si vous vouliez que votre logiciel client pour être en mesure d'insérer ou de mettre à jour les données dans ce tableau, vous pouvez utiliser l'un PLUTÔT que DE l'INSÉRER ou à la PLACE DU déclencheur de mise à JOUR pour mettre à jour la table de base.
Je suis à l'aide de l'utilitaire sqlcmd pour SQL Server 2008 et a constaté que les décalages sont différents. Pour la sortie correcte, j'ai utilisé
SUBSTRING(x.SecurityNumber,1,3) + 'xxxxx' + SUBSTRING(x.SecurityNumber,LEN(x.SecurityNumber) - 2, LEN(x.SecurityNumber))
Merci @David. Modifiés en conséquence.
OriginalL'auteur Dave Markle
Si vous connaissez la durée de votre champ de données, vous pouvez utiliser la version statique que l'autre réponse, mais vous pouvez toujours créer une fonction pour générer ce:
Pour cette fonction, vous passerez dans les valeurs que vous souhaitez masquer. Si votre requête serait:
Voir SQL jouer avec la Démo
Le résultat serait:
Ou ici est une façon de le faire avec une expression de table commune récursive:
Voir SQL jouer avec la Démo
OriginalL'auteur Taryn
De
SQL Server 2016+
vous pouvez utiliser Dynamique De Données De Masquage fonctionnalité.De sortie:
De sortie:
LiveDemo
OriginalL'auteur Lukasz Szozda
Une simple requête select serait de retour juste ce qu'il est sur la table, peu importe si c'est crypté ou non.
Donc, je pense que vous ne pouvez pas faire cela sur la base de données.
Pour votre condition, vous avez besoin d'une bidirectionnel algorithme de chiffrement à utiliser dans votre application, de sorte que vous pouvez crypter les données avant de les enregistrer chiffré sur la base de données, et d'obtenir les informations chiffrées de la base de données et de les décrypter sur votre applicaition.
OriginalL'auteur Nathan
très simple bro
de sortie :
si c'est
num
type de convertirchar
OriginalL'auteur Srinivas
Si vous souhaitez masquer le champ dont vous ne connaissez rien de longueur du champ. Vous pouvez mettre à niveau bluefeet code comme ceci:
Vous pouvez tester comme ceci:
RÉSULTATS:
OriginalL'auteur Can OTUR