Kirjoita sama käyttäjänimi kahta eri reittiä ja MariaDB voi todentaa sinut kahtena eri tilinä. Tilit avaimistetaan käyttäjän ja isännän mukaan yhdessä, joten 'reporter'@'localhost' ja 'reporter'@'10.90.0.23' ovat erillisiä rivejä erillisillä salasanoilla ja erillisillä myönnyksillä. VPN:n yli kiinnostava kysymys ei ole, minkä nimen käyttäjä kirjoitti, vaan minkä lähdeosoitteen palvelin näki.

Selvitä lähde, jonka palvelin todella näkee

Työskentele taaksepäin tietokannan isännästä, ei kannettavasta. Osoite, jonka asiakas uskoo omaavansa, on vain yksi useista mahdollisuuksista:

PathSource MariaDB sees
Routed tunnel, no translationThe client's inner VPN address
Gateway source translationThe gateway's translated address
SSH local forwardThe SSH server's address
Public exit, no tunnelWhatever the ISP handed out

Ratkaise asia palvelinpuolen todisteilla. Yhteysloki, aktiivisten istuntojen luettelo tai väliaikainen merkintä yleislokiin näyttää osoitteen, jonka palvelin hyväksyi. Kannettavan julkinen IP selaimesta on eri tosiasia ja usein harhaanjohtava.

Sovita tili, jonka MariaDB valitsi

Tilin valinta noudattaa dokumentoitua järjestystä eikä myönnysten yhdistelmää. Tarkka isäntäosumma on etusijalla jokerimerkkiin nähden, ja anonyymin käyttäjän rivit osallistuvat sovitukseen tavoilla, jotka yllättävät ne, jotka olettavat nimen yksin ratkaisevan. Palvelin valitsee yhden rivin; se ei yhdistä jokaisen samannimisen rivin oikeuksia. Viitteen lukeminen kerran on arvokkaampaa kuin iltapäivä arvausten testaamista.

Tämä tarkoittaa, että myönnyksen lisääminen 'reporter'@'%'-tiliin ei välttämättä muuta mitään, jos istunto todentui tilinä 'reporter'@'10.90.0.23'. Korjauksen on osuttava riville, joka valittiin, siksi tilin tunnistaminen tulee ennen myönnysten muokkaamista.

Lue tili, jota istunto todella käyttää

SELECT USER(), CURRENT_USER();
SHOW GRANTS;

CURRENT_USER() nimeää tilin, joka todensi istunnon; USER() raportoi, mitä asiakas pyysi, ja voi poiketa. Suorita ne tavallisina ylätason kyselyinä, älä määrittelijän kontekstilla varustetun tallennetun rutiinin sisältä, muuten vastaukset kuvaavat rutiinin omistajaa istuntosi sijaan.

Epäonnistunut kirjautuminen ei voi suorittaa mitään tästä, ja se on tapaus, jossa ylläpitäjän on tutkittava tilien määritelmät ja palvelimen yhteystodisteet. Varaudu siihen: hylätyn kirjautumisen vianmääritystä tekevällä henkilöllä ei yleensä ole SQL-istuntoa kyselyihin.

Erota tavoitettavuus todennuksesta

Virheteksti kertoo, missä kerroksessa olet. Hylätty yhteys tai aikakatkaisu tarkoittaa, että asiakas ei koskaan saavuttanut kuuntelijaa, joten tili ja sen salasana eivät ole vielä kyseenalaisia. Käytön estämistä koskeva vastaus tarkoittaa, että palvelin vastasi, mikä todistaa tavoitettavuuden ja osoittaa tilin, isäntäosuman tai tunnistetiedon suuntaan.

Verkkovaatimukset ovat oma luettelonsa: kuuntelija, joka on sidottu aiottuun osoitteeseen eikä vain loopbackiin, sallittu liikenne määritettyyn porttiin ja paluureitti vastaukselle. Jokainen voi epäonnistua itsenäisesti, eikä toimiva tunneli edellytä yhtäkään niistä. Loopbackin kuuntelija hyväksyy paikalliset yhteydet ja hylkää jokaisen etäyhteyden, mikä tuottaa hylätyn yhteyden, joka näyttää palomuurin estolta.

Tarkista sidontaosoite ennen kuin avaat tiketin verkkotiimille. ss -lntp tietokannan isännässä näyttää, mikä osoite ja portti todella kuuntelevat, ja se yksi rivi sulkee pois kokonaisen arvausten luokan.

Korjaa kapeasti ja testaa sitten molemmat suunnat

Luo aiottu isäntäkohtainen tili organisaation hyväksytyssä prosessissa tunnistetiedolla tuetusta varastosta, ei jaetulla, joka on liitetty tikettiin. Myönnä vain ne skeematoiminnot, joita tehtävä tarvitsee. Epäonnistuneen etäkirjautumisen muuttaminen root-tiliksi, kaikki myönnettäväksi käytännöksi tai yleiseksi jokerimerkki-isännäksi saa testin läpäisemään ja poistaa valvonnan, jota testasit. Kiireessä lisätty myönnys on se, jota kukaan ei myöhemmin poista.

Testaa uudelleen tuoreella istunnolla aiotun reitin kautta ja tarkista sitten negatiiviset tapaukset. Reitin, joka pitäisi estää, on edelleen oltava estetty, ja toiminnon, jota ei myönnetty, on edelleen oltava kielletty. Nämä kaksi tarkistusta erottavat korjatun tilin laajennetusta.

Tallenna lopuksi havaittu lähdeosoite ja tilin nimi yhdessä. Tunneli tarjoaa tavoitettavuuden; MariaDB valitsee ja valtuuttaa edelleen oman tilinsä, ja seuraava henkilö tarvitsee molemmat tosiasiat tuloksesi toistamiseen.

Aiheeseen liittyvät artikkelit