deterministic or randomized encryption in SQL Server 2019 “Always Encrypted”How to enable encrypted connections to a SQL Server instance?SQL Server 2000 Encryption CertificatesSQl server 2008 permission and encryptionSQL Server encryption/decryptionSQL Server Column Level Encryption - Rotating KeysSQL server EncryptionIs data always encrypted in IPv6 communications?SQL Server encryption - rotate keys for PCI complianceSql Server - Error attaching mdf file encrypted via Encrypted File System (EFS)Encrypted offsite backups - where to store the encryption key?
What aircraft was used as Air Force One for the flight between Southampton and Shannon?
Why does ''cat "$1:-/dev/stdin | ... &>/dev/null'' work in bash but not dash?
Has there been a multiethnic Star Trek character?
Is it possible to have 2 different but equal size real number sets that have the same mean and standard deviation?
Is there a set of positive integers of density 1 which contains no infinite arithmetic progression?
How to you show a 3-center 2-electron bond in a Lewis structure?
Extreme flexible working hours: how to get to know people and activities?
Ability To Change Root User Password (Vulnerability?)
How come the nude protesters were not arrested?
What would be the way to say "just saying" in German? (Not the literal translation)
How to trick the reader into thinking they're following a redshirt instead of the protagonist?
Fermat's statement about the ancients: How serious was he?
Why are MBA programs closing?
Why Does Mama Coco Look Old After Going to the Other World?
Should I put programming books I wrote a few years ago on my resume?
Is it possible to have a wealthy country without a middle class?
If there's something that implicates the president why is there then a national security issue? (John Dowd)
Discarding ox heart fat
Are there any normal animals in Pokemon universe?
What is the purpose of bonds within an investment portfolio?
Does putting salt first make it easier for attacker to bruteforce the hash?
Can a human be transformed into a Mind Flayer?
My boss want to get rid of me - what should I do?
Why can I traceroute to this IP address, but not ping?
deterministic or randomized encryption in SQL Server 2019 “Always Encrypted”
How to enable encrypted connections to a SQL Server instance?SQL Server 2000 Encryption CertificatesSQl server 2008 permission and encryptionSQL Server encryption/decryptionSQL Server Column Level Encryption - Rotating KeysSQL server EncryptionIs data always encrypted in IPv6 communications?SQL Server encryption - rotate keys for PCI complianceSql Server - Error attaching mdf file encrypted via Encrypted File System (EFS)Encrypted offsite backups - where to store the encryption key?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Example use case: We want to protect the privacy of potential patients, that is, keep their medical procedures, if any, from being divulged. Here is a simplistic schema to illuminate the issues that I have questions about relating to Microsoft SQL Server encryption options. The questions are at the bottom.
Table1: POTENTIALPATIENTS
This is a set of people who are authorized to use the medical services. About 250,000 rows. NOTE: We need to do (rapid response) full-text searching on patientname. We also want to prevent duplicates as best we can in the absence of something like a "unique patient number".
ppid uniqueidentifier primary key
patientname nvarchar(100)
birthdate date
last4digitsOfSSN char(4)
-- prevent duplicates as best we can
CREATE UNIQUE INDEX UX_POTENTIALPATIENTS on
POTENTIALPATIENTS(patientname, birthdate, last4digitsOfSSN)
-- for lookups using `like` or `contains` operators
(pseudo) CREATE FULLTEXT INDEX ON PATIENTNAME
Table2: MEDICALPROCEDURES
This is the table showing the medical procedure(s) a potential (now actual) patient has had.
id identity(1,1) primary key
ppid uniqueidentifier
procedurecode varchar(10)
proceduredate date
ALTER TABLE MEDICALPROCEDURES ADD CONSTRAINT
FK_MEDICALPROCEDURES_POTENTIALPATIENTS
FOREIGN KEY(ppid) REFERENCES POTENTIALPATIENTS(ppid)
-- to quickly find all procedures for a given patient
CREATE INDEX IX_MEDICALPROCEDURES_PPID on MEDICALPROCEDURES(ppid)
Forgetting for a moment about our other application requirements (duplicate prevention, fast name lookups, fast gathering of a specified patient's procedures) we can protect patient privacy (that is, keep hidden what procedures they have had, if any) by doing either of these things:
a) encrypt column patientname, which would obscure the patient name
or
b) encrypt columns POTENTIALPATIENT.ppid and MEDICALPROCEDURES.ppid, the columns involved in the foreign-key constraint, which would obscure which patients have had which procedures
QUESTIONS:
If we encrypt patientname can we do quick patient-name lookups using LIKE/CONTAINS operators? Can patientname participate in a unique composite index?
If we encrypt the uniqueidentifier columns in the foreign-key relationship, can we quickly find all procedures a specified patient has had, avoiding a full table scan?
sql-server encryption
add a comment |
Example use case: We want to protect the privacy of potential patients, that is, keep their medical procedures, if any, from being divulged. Here is a simplistic schema to illuminate the issues that I have questions about relating to Microsoft SQL Server encryption options. The questions are at the bottom.
Table1: POTENTIALPATIENTS
This is a set of people who are authorized to use the medical services. About 250,000 rows. NOTE: We need to do (rapid response) full-text searching on patientname. We also want to prevent duplicates as best we can in the absence of something like a "unique patient number".
ppid uniqueidentifier primary key
patientname nvarchar(100)
birthdate date
last4digitsOfSSN char(4)
-- prevent duplicates as best we can
CREATE UNIQUE INDEX UX_POTENTIALPATIENTS on
POTENTIALPATIENTS(patientname, birthdate, last4digitsOfSSN)
-- for lookups using `like` or `contains` operators
(pseudo) CREATE FULLTEXT INDEX ON PATIENTNAME
Table2: MEDICALPROCEDURES
This is the table showing the medical procedure(s) a potential (now actual) patient has had.
id identity(1,1) primary key
ppid uniqueidentifier
procedurecode varchar(10)
proceduredate date
ALTER TABLE MEDICALPROCEDURES ADD CONSTRAINT
FK_MEDICALPROCEDURES_POTENTIALPATIENTS
FOREIGN KEY(ppid) REFERENCES POTENTIALPATIENTS(ppid)
-- to quickly find all procedures for a given patient
CREATE INDEX IX_MEDICALPROCEDURES_PPID on MEDICALPROCEDURES(ppid)
Forgetting for a moment about our other application requirements (duplicate prevention, fast name lookups, fast gathering of a specified patient's procedures) we can protect patient privacy (that is, keep hidden what procedures they have had, if any) by doing either of these things:
a) encrypt column patientname, which would obscure the patient name
or
b) encrypt columns POTENTIALPATIENT.ppid and MEDICALPROCEDURES.ppid, the columns involved in the foreign-key constraint, which would obscure which patients have had which procedures
QUESTIONS:
If we encrypt patientname can we do quick patient-name lookups using LIKE/CONTAINS operators? Can patientname participate in a unique composite index?
If we encrypt the uniqueidentifier columns in the foreign-key relationship, can we quickly find all procedures a specified patient has had, avoiding a full table scan?
sql-server encryption
add a comment |
Example use case: We want to protect the privacy of potential patients, that is, keep their medical procedures, if any, from being divulged. Here is a simplistic schema to illuminate the issues that I have questions about relating to Microsoft SQL Server encryption options. The questions are at the bottom.
Table1: POTENTIALPATIENTS
This is a set of people who are authorized to use the medical services. About 250,000 rows. NOTE: We need to do (rapid response) full-text searching on patientname. We also want to prevent duplicates as best we can in the absence of something like a "unique patient number".
ppid uniqueidentifier primary key
patientname nvarchar(100)
birthdate date
last4digitsOfSSN char(4)
-- prevent duplicates as best we can
CREATE UNIQUE INDEX UX_POTENTIALPATIENTS on
POTENTIALPATIENTS(patientname, birthdate, last4digitsOfSSN)
-- for lookups using `like` or `contains` operators
(pseudo) CREATE FULLTEXT INDEX ON PATIENTNAME
Table2: MEDICALPROCEDURES
This is the table showing the medical procedure(s) a potential (now actual) patient has had.
id identity(1,1) primary key
ppid uniqueidentifier
procedurecode varchar(10)
proceduredate date
ALTER TABLE MEDICALPROCEDURES ADD CONSTRAINT
FK_MEDICALPROCEDURES_POTENTIALPATIENTS
FOREIGN KEY(ppid) REFERENCES POTENTIALPATIENTS(ppid)
-- to quickly find all procedures for a given patient
CREATE INDEX IX_MEDICALPROCEDURES_PPID on MEDICALPROCEDURES(ppid)
Forgetting for a moment about our other application requirements (duplicate prevention, fast name lookups, fast gathering of a specified patient's procedures) we can protect patient privacy (that is, keep hidden what procedures they have had, if any) by doing either of these things:
a) encrypt column patientname, which would obscure the patient name
or
b) encrypt columns POTENTIALPATIENT.ppid and MEDICALPROCEDURES.ppid, the columns involved in the foreign-key constraint, which would obscure which patients have had which procedures
QUESTIONS:
If we encrypt patientname can we do quick patient-name lookups using LIKE/CONTAINS operators? Can patientname participate in a unique composite index?
If we encrypt the uniqueidentifier columns in the foreign-key relationship, can we quickly find all procedures a specified patient has had, avoiding a full table scan?
sql-server encryption
Example use case: We want to protect the privacy of potential patients, that is, keep their medical procedures, if any, from being divulged. Here is a simplistic schema to illuminate the issues that I have questions about relating to Microsoft SQL Server encryption options. The questions are at the bottom.
Table1: POTENTIALPATIENTS
This is a set of people who are authorized to use the medical services. About 250,000 rows. NOTE: We need to do (rapid response) full-text searching on patientname. We also want to prevent duplicates as best we can in the absence of something like a "unique patient number".
ppid uniqueidentifier primary key
patientname nvarchar(100)
birthdate date
last4digitsOfSSN char(4)
-- prevent duplicates as best we can
CREATE UNIQUE INDEX UX_POTENTIALPATIENTS on
POTENTIALPATIENTS(patientname, birthdate, last4digitsOfSSN)
-- for lookups using `like` or `contains` operators
(pseudo) CREATE FULLTEXT INDEX ON PATIENTNAME
Table2: MEDICALPROCEDURES
This is the table showing the medical procedure(s) a potential (now actual) patient has had.
id identity(1,1) primary key
ppid uniqueidentifier
procedurecode varchar(10)
proceduredate date
ALTER TABLE MEDICALPROCEDURES ADD CONSTRAINT
FK_MEDICALPROCEDURES_POTENTIALPATIENTS
FOREIGN KEY(ppid) REFERENCES POTENTIALPATIENTS(ppid)
-- to quickly find all procedures for a given patient
CREATE INDEX IX_MEDICALPROCEDURES_PPID on MEDICALPROCEDURES(ppid)
Forgetting for a moment about our other application requirements (duplicate prevention, fast name lookups, fast gathering of a specified patient's procedures) we can protect patient privacy (that is, keep hidden what procedures they have had, if any) by doing either of these things:
a) encrypt column patientname, which would obscure the patient name
or
b) encrypt columns POTENTIALPATIENT.ppid and MEDICALPROCEDURES.ppid, the columns involved in the foreign-key constraint, which would obscure which patients have had which procedures
QUESTIONS:
If we encrypt patientname can we do quick patient-name lookups using LIKE/CONTAINS operators? Can patientname participate in a unique composite index?
If we encrypt the uniqueidentifier columns in the foreign-key relationship, can we quickly find all procedures a specified patient has had, avoiding a full table scan?
sql-server encryption
sql-server encryption
asked May 24 at 14:50
TimTim
135129
135129
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968728%2fdeterministic-or-randomized-encryption-in-sql-server-2019-always-encrypted%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968728%2fdeterministic-or-randomized-encryption-in-sql-server-2019-always-encrypted%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown