Skip to content

Commit 62a9026

Browse files
committed
improved sample
1 parent 667a08b commit 62a9026

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

app.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
application_name = ";APP={0}".format(socket.gethostname())
2323
connection_string = os.environ['SQLAZURECONNSTR_RLS'] + application_name
2424

25+
# Base API class
2526
class Queryable(Resource):
2627
def __authorize(self):
2728
encoded = ""
@@ -52,7 +53,7 @@ def get(self):
5253
return result, 200
5354

5455
@retry(stop=stop_after_attempt(3), wait=wait_fixed(10), retry=retry_if_exception_type(pyodbc.OperationalError), after=after_log(app.logger, logging.DEBUG))
55-
def executeQueryJson(self, verb, username, payload=None):
56+
def executeQueryJson(self, verb, user_hash_id, payload=None):
5657
result = {}
5758
entity = type(self).__name__.lower()
5859
procedure = f"web.{verb}_{entity}"
@@ -63,7 +64,7 @@ def executeQueryJson(self, verb, username, payload=None):
6364
cursor = conn.cursor()
6465

6566
# set session context info, used by Row-Level Security
66-
cursor.execute(f"EXEC sys.sp_set_session_context @key=N'user-hash-id', @value=?, @read_only=1;", username)
67+
cursor.execute(f"EXEC sys.sp_set_session_context @key=N'user-hash-id', @value=?, @read_only=1;", user_hash_id)
6768

6869
if payload:
6970
print("EXEC %s %s" % (procedure, json.dumps(payload)))

sql/00-SetupRLS.sql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
create user MiddleTierUser with password = 'a987REALLY#$%TRONGpa44w0rd';
2-
alter role db_owner add member MiddleTierUser;
1+
if (user_id('MiddleTierUser') is null) begin
2+
create user MiddleTierUser with password = 'a987REALLY#$%TRONGpa44w0rd';
3+
alter role db_owner add member MiddleTierUser;
4+
end
35
go
46

57
drop security policy if exists rls.SensitiveDataPolicy;

0 commit comments

Comments
 (0)