SQL dros VPN: cleient uniongyrchol neu waithfa fewnol?
Mae SQL uniongyrchol o liniadur VPN a SSMS ar waithfa a reolir yn llwybrau ymddiriedaeth gwahanol. Cymharwch y cyfeiriad ffynhonnell a'r caniatâd y mae'r naill a'r llall yn eu creu.
Mae timau eisiau SSMS ar eu liniaduron, a'r atgyweiriad cyflym yw cyhoeddi'r porth SQL i bwll y VPN. Mae'r ateb arafach yn gofyn ble y dylai'r broses gleient redeg, oherwydd bod mynediad uniongyrchol a gwaithfa fewnol yn cynhyrchu cyfeiriadau ffynhonnell, ymddiriedaeth pen draw a llwybrau data gwahanol. Nid yw'r naill na'r llall yn ddiogel yn awtomatig, ac nid yw aelodaeth VPN ar ei phen ei hun yn penderfynu dim. Cymharwch y dyluniadau cyn bod rheol caniatáu yn bodoli.
Dwy lwybr, dau gyfeiriad ffynhonnell
Gyda mynediad uniongyrchol mae'r liniadur yn cario'r ffurfweddiad cleient ac yn agor y cysylltiad cronfa ddata ei hun. Gyda gwaithfa bell mae'r liniadur yn agor sesiwn bwrdd gwaith, a'r waithfa yn gwneud y cysylltiad SQL o'i chyfeiriad ei hun. Felly mae'r gronfa ddata yn gweld pwll y VPN neu borth cyfieithu yn y dyluniad cyntaf, a chyfeiriad y waithfa yn yr ail. Mae'r gwahaniaeth hwnnw'n penderfynu pa reol wal dân a pha ganiatâd SQL sy'n gymwys mewn gwirionedd.
Mae'r liniadur yn dal i reoli'r sesiwn bell, felly nid yw gwaithfa yn cymryd lle uwthentiadu defnyddiwr na pholisi sesiwn.
Gwiriwch beth mae'r gronfa ddata yn ei weld mewn gwirionedd
Mae'r cyfeiriad ffynhonnell yn rhywbeth i'w fesur yn hytrach na'i gasglu o ddiagram. Darllenwch ef o ochr y gweinydd mewn cysylltiad byw.
Test-NetConnection sql.example.com -Port 1433
sqlcmd -S tcp:sql.example.com,1433 -N -d appdb -Q "select SUSER_SNAME() as login_name, DB_NAME() as db"Mae'r prawf cysylltedd yn profi bod y gwrandäwr yn derbyn TCP o'r rhwydwaith hwnnw, tra mae'r ymholiad yn profi pa fewngofnod a chronfa ddata y cyrhaeddodd y sesiwn. I weld y cyfeiriad a gofnododd y gweinydd, ymholwch sys.dm_exec_connections ar gyfer y sesiwn gyfredol, sy'n dychwelyd cyfeiriad y cleient ar ôl unrhyw gyfieithu. Os mai porth yw'r gwerth hwnnw yn hytrach na'r liniadur, ni all rheol gwesteiwr fesul defnyddiwr weithio ar beiriant y gronfa ddata. Ysgrifennwch y gwerth a welwyd wrth ymyl y dyluniad a ddewiswyd, oherwydd mae ailgysylltu a newidiadau pwll yn ei symud.
Agorwch y gwrandäwr a dim byd arall
Agorwch yn unig y gwasanaeth sydd ei angen ar y defnydd. Mae'r 1433 cyfarwydd yn borth yr enghraifft ragosodedig, nid yn gysonyn cyffredinol.
Get-NetTCPConnection -State Listen -LocalPort 1433Mae enghreifftiau a enwir yn aml yn gwrando ar borth deinamig, gyda SQL Server Browser yn ateb darganfod ar UDP 1434, ac mae'r dibyniaeth honno'n datguddiad ar wahân y mae angen ei gyfiawnhau. Mae pinio porth sefydlog i'r enghraifft yn dileu'r angen am Browser ac yn gwneud rheolau wal dân yn sefydlog. Cadwch y gwiriadau amgryptio a thystysgrif y mae'r cleient eisoes yn eu gwneud yn lle eu diffodd i wneud i brawf lwyddo. Yna rhowch rolau cronfa ddata ar gyfer y llwyth gwaith yn lle ychwanegu'r grŵp VPN cyfan at rôl gweinydd.
Profwch y llwybr a ganiateir a'r llwybr a wrthodir
Agorwch sesiwn newydd fel defnyddiwr cyffredin a gymeradwywyd, a chadarnhewch hunaniaeth y gweinydd, y gronfa ddata, ynghyd â'r llawdriniaeth sydd ei hangen. Yna cadarnhewch yr eithriad: rhaid i ffynhonnell neu gyfrif y tu allan i'r polisi fethu'r un prawf. Ar gyfer y dyluniad gwaithfa, gwiriwch na all y liniadur osgoi'r ffin drwy gyrraedd y gronfa ddata yn uniongyrchol. Ar gyfer mynediad uniongyrchol, gwiriwch fod y llwybr a'r rheol ffynhonnell yn dal ar ôl ailgysylltu.
Cofnodwch ble y rhedodd y cleient, pa ffynhonnell a welodd y gronfa ddata a pha reol a'i caniataodd. Dyna'r dystiolaeth y bydd yr adolygiad nesaf yn ei gofyn.