שימוש במנהל התקן JDBC כדי להתחבר ל-Spanner Omni

במאמר הזה מוסבר איך להשתמש במנהל ההתקן Spanner JDBC כדי לחבר אפליקציות Java ל-Spanner Omni ולהריץ הצהרות SQL.

‫Java Database Connectivity (JDBC) הוא API סטנדרטי של Java שמספק דרך עקבית לאפליקציות לנהל אינטראקציה עם מסדי נתונים יחסיים. מנהל ההתקן של Spanner JDBC פועל עם Spanner Omni באותו אופן שבו הוא פועל עם Spanner.

באמצעות מנהל ההתקן של JDBC, אתם יכולים להשתמש בכלים ובספריות סטנדרטיים שתואמים ל-JDBC עם Spanner Omni.

חיבורי Spanner Omni JDBC תומכים בשלושה מצבי אבטחה: טקסט פשוט, TLS ו-mTLS.

מידע נוסף מופיע במאמר תחילת העבודה עם Spanner ב-JDBC במסמכי Spanner.

שיקולים לגבי כתובות URL של חיבור

מכיוון ש-Spanner Omni לא מחובר ישירות לפרויקטGoogle Cloud , לא צריך להשתמש ברכיב projects/name בכתובת ה-URL של חיבור ה-JDBC. באופן דומה, מכיוון שלכל פריסת Spanner Omni יש מופע יחיד שכבר נוצר (instances/default), הרכיב instances/name הוא אופציונלי.

יצירת חיבור ל-Spanner Omni

בדוגמאות הבאות מוצגות דרכים ליצירת חיבור ל-Spanner Omni באמצעות מנהל התקן Spanner JDBC לכל מצב אבטחה נתמך:

תקשורת בטקסט פשוט

כדי ליצור תקשורת בטקסט פשוט, משתמשים בכתובת URL לחיבור שדומה לכתובת הבאה:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;isExperimentalHost=true";
try {
      java.sql.Connection connection = DriverManager.getConnection(url);
      try {
        ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM Singers");
        while (rs.next()) {
          System.out.print(rs.getLong(1) + "\t");
          System.out.println(rs.getString(2));
        }
      } catch (Exception e) {
        System.out.println(e.getMessage());
      }
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }

כשמשתמשים באסימון אימות עם TLS או mTLS עבור נקודת קצה של Spanner Omni, צריך להגדיר את משתנה הסביבה SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN לנתיב של אסימון האימות שנוצר על ידי Spanner Omni CLI. אם לא נדרשים פרטי כניסה לחיבור, לא צריך להגדיר את המשתנה הזה. לא מומלץ להשתמש באסימוני אימות בלקוח כי התוקף של האסימונים שנוצרים על ידי Spanner Omni פג, וצריך לחדש אותם באופן ידני באמצעות ה-CLI של Spanner Omni.

חיבור TLS

כדי ליצור חיבור TLS, מוסיפים את אישור ה-CA למאגר האישורים המהימנים של Java או מעבירים אותו ישירות כשמריצים את האפליקציה, כמו שמוסבר בהוראות ה-TLS של Java SDK. כתובת ה-JDBC לא דורשת פרמטרים נוספים בזמן יצירת חיבור TLS:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";

חיבור mTLS

כדי ליצור חיבור mTLS, צריך להוסיף לכתובת ה-URL של JDBC שני פרמטרים נוספים: clientCertificate ו-clientKey. בפרמטרים האלה צריך לציין את נתיבי הקבצים של אישור הלקוח והמפתח הפרטי של הלקוח, בהתאמה. המפתח הפרטי של הלקוח צריך להיות בפורמט שתואם ל-Java, כפי שמצוין בהוראות ל-Java SDK mTLS:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";