+ All Categories
Home > Documents > Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision...

Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision...

Date post: 07-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
34
Bjørn Dörr Jensen - Decision Intelligence Specialist, contributed in developing a system that turns raw data into recommended actions to improve turbine availability. M. Sc. in Physics
Transcript
Page 1: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Bjørn Dörr Jensen - Decision Intelligence Specialist,

contributed in developing a system that turns raw

data into recommended actions to improve turbine

availability.

M. Sc. in Physics

Page 2: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Just like Jimi Hendrix …

We love to get feedback

Please complete the session feedback

forms

Page 3: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests
Page 4: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

4

Page 5: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

5

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 6: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

6

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 7: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

ComputerWeekly.com

Page 8: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Power Curve: E ~ v3

8

Page 9: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

9

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 10: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

10

Page 11: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

SQL login – pw ”recovery”

11

oclHashcat64 -m 1731 -a 3 -o "C:\Data\pw1.txt" 0x0200B130FCB251BBA815D301E1CA9710915D2...

CREATE LOGIN getme WITH PASSWORD = 'M3n0g1s3';

Page 12: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Impersonation

12

DB

data data

AD user AD user

Page 13: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Create another user…

13

Page 14: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

14

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 15: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Foreign keys

15

Page 16: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Demo steps

• Create tables

• Insert data

• Show data

• Creating TVF’s (trap)

• Creating TVF’s correct

• Implicit knowledge derived from statistics

• Deploying changes to TVF’s used for row level security

16

Page 17: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

17

Page 18: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

18

Page 19: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Statistics can tell you something…

19

Page 20: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

20

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 21: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

is_member

21

Page 22: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

High PREEMPTIVE_OS_LOOKUPACCOUNTSID & PREEMPTIVE_OS_AUTHORIZATIONOPS

WaitType="PREEMPTIVE_OS_LOOKUPACCOUNTSID"

WaitTimeMs="8851" WaitCount="10007"

WaitType="PREEMPTIVE_OS_AUTHORIZATIONOPS"

WaitTimeMs="21900" WaitCount="10007"

22

select * from pc.Generator

Page 23: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Don’t include is_member in RLS functions to check AD role

https://docs.microsoft.com/en-us/sql/relational-databases/security/row-level-security

Has example with user_name(), but…

DBCC FREESYSTEMCACHE ('TokenAndPermUserStore’)

https://blogs.technet.microsoft.com/bulentozkir/2014/01/09/tokenandpermuserstore-related-information-on-sql-server-2012/

23

Page 24: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

24

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 25: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Caching AD-role membership

25

AD cache

ADinfo

View to extract

info from AD

source via

Power-Shell.

CacheADmembership

Procedure to merge

into table

Membership

UserMembership

View on top of

table Membership.

To be used in TVF

for RLS.

Page 26: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

$list=(Get-ADGroupMember -identity ”MyADgroupName" -Recursive )$list.SamAccountName -join ","

26

Page 27: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

27

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 28: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Proc CheckRLS

28

Check

• rowcount

• ”key” table (pc.Status)

• tables with foreign key to pc.Status

• tables indirectly related to pc.Status

• Cache non-empty

Page 29: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Demo steps

• How to cache AD role membership

A. ADinfo view

B. Membership table

C. Membership view

D. CacheADmembership procedure

E. Job for synchronization

F. Check membership (select)

• How to write tests to check TVF’s working correctly

▪CheckRLS

▪CheckAccess

29

Page 30: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Row Level Security – A real world example

30

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Page 31: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Split responsibility

31

ALTER SERVER ROLE [sysadmin]ADD MEMBER [Domainname\ADgroupSuperAdmin];

GRANT CONTROL SERVER TO [DomainName\ADgroupNormalAdmin];DENY IMPERSONATE ANY LOGIN TO [DomainName\ADgroupNormalAdmin];DENY CONTROL ON SCHEMA::secu TO [DomainName\ADgroupNormalAdmin];

AuditUse Kenneth Fisher's stored procedures to get overview of authentication and authorization

sp_SrvPermissions

sp_DBPermissions

Page 32: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

SQLBits - It's all about the community...

Please visit Community Corner, we are trying this year to get more people to learn about the SQL Community, equally if you would be happy to visit the community corner we’d really appreciate it.

Page 33: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

34

You don't like the idea to change the data model

to create kind of virtual private database?

• Why does it matter?

• SQL login vs Integrated security

• How foreign key relationships can be used

• Why to avoid is_member

• How to cache AD-role membership

• How to write tests to check TVF's working correctly

• Role split – “sysadmin” being admin without data access

• Q & A

Promise:”At least one of youwill not leave empty-handed!”

Thank you for your attention!

[email protected]@gmail.com

Page 34: Bjørn Dörr Jensen - Decision Intelligence Specialist,€¦ · Bjørn Dörr Jensen - Decision Intelligence Specialist, ... • How to cache AD-role membership • How to write tests

Impersonation

35

DB

data data

AD user AD user

• ASP .Net Impersonation / Windows Authentication: Enable

• Kerberos

• AppPoolCredentials / UseKernelMode: true

• Application binding

• Register domain name as A-record

• Svc account running web server: Trust this user for delegation to specified services only

• Register SPN (setspn)

• Client web browser: allow forwardable tickets

• Debugging: snif Kerberos tickets (Wireshark)

• Good relations to IT-department


Recommended