Microsoft SQL Server‏ (MSSQL)

ל-Looker יש תמיכה ברמת השילוב ב-MSSQL. בדף הזה מוסבר איך לחבר את Looker ל-MSSQL.

הצפנת התנועה ברשת

מומלץ להצפין את התנועה ברשת בין אפליקציית Looker לבין מסד הנתונים. כדאי לשקול אחת מהאפשרויות שמתוארות בדף הפעלת גישה מאובטחת למסד נתונים.

אם אתם רוצים להשתמש בהצפנת SSL, תוכלו לעיין במסמכי Microsoft.

הגדרת אימות שרת

כדי להשתמש ב-Looker, צריך להגדיר "אימות של SQL Server" בשרת MSSQL. אם שרת MSSQL מוגדר רק כ-Windows Integrated Authentication, צריך לשנות את הגדרת השרת ל-Windows Integrated Authentication ו-SQL Server Authentication.

אם הגדרת השרת לא תקינה, Looker לא יוכל להתחבר. השגיאה הזו תופיע בהודעות היומן של SQL Server, למשל: "An attempt to log in using SQL authentication failed.‎ השרת מוגדר לאימות של Windows בלבד".

אם השינוי הזה נדרש, אפשר לבצע את השלבים הבאים:

  1. ב-SQL Server Management Studio Object Explorer, לוחצים לחיצה ימנית על השרת ואז לוחצים על Properties (מאפיינים).
  2. בדף Security (אבטחה), בקטע Server authentication (אימות שרת), בוחרים את מצב אימות השרת החדש ולוחצים על OK (אישור).
  3. בתיבת הדו-שיח SQL Server Management Studio, לוחצים על OK כדי לאשר את הדרישה להפעיל מחדש את SQL Server.
  4. ב-Object Explorer, לוחצים לחיצה ימנית על השרת ואז לוחצים על Restart. אם SQL Server Agent פועל, צריך להפעיל גם אותו מחדש.

מידע נוסף זמין במאמרי העזרה של Microsoft.

יצירת משתמש ב-Looker

‫Looker מאמת את מסד הנתונים באמצעות אימות של SQL Server. אי אפשר להשתמש בחשבון דומיין.

כדי ליצור חשבון, מריצים את הפקודות הבאות. צריך לשנות את some_password_here לסיסמה ייחודית ומאובטחת:

CREATE LOGIN looker
  WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO

מתן הרשאה למשתמש Looker לבחור מתוך טבלאות

כדי להריץ שאילתות ב-Looker, צריך את ההרשאה SELECT לכל טבלה או סכימה. יש כמה דרכים להקצות הרשאת SELECT:

  • כדי לתת הרשאת SELECT לסכימות ספציפיות, מריצים את הפקודה הבאה לכל סכימה:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • כדי לתת את ההרשאה SELECT לטבלאות ספציפיות, מריצים את הפקודה הבאה לכל טבלה:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • ב-MSSQL בגרסה 2012 ואילך, אפשר גם להקצות למשתמש Looker את התפקיד db_datareader באמצעות הפקודות הבאות:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

מתן הרשאה למשתמש ב-Looker לצפות בשאילתות שפועלות ולהפסיק אותן

צריך לתת ל-Looker הרשאה לזהות שאילתות ולהפסיק את ההרצה שלהן. לשם כך נדרשות ההרשאות הבאות:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

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

USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO

מתן הרשאה למשתמש Looker ליצור טבלאות

כדי לתת למשתמש Looker הרשאה ליצור טבלאות PDT, מריצים את הפקודות הבאות:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

הגדרת סכימת טמפרטורה

כדי ליצור סכימה בבעלות המשתמש ב-Looker ולהעניק לו את ההרשאות הנדרשות, מריצים את הפקודה הבאה:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

הגדרת אימות Kerberos

אם אתם משתמשים באימות Kerberos עם מסד הנתונים של MSSQL, בצעו את השלבים להגדרת Looker להתחברות באמצעות Kerberos, כפי שמתואר בקטע הבא.

הגדרת הלקוח של Kerberos

קודם כל, צריך לוודא שהותקנו כמה תוכנות ושיש כמה קבצים במכונה של Looker.

לקוח Kerberos

מריצים את הפקודה kinit כדי לוודא שקליינט Kerberos מותקן במכונת Looker. אם לקוח Kerberos לא מותקן, צריך להתקין את הקבצים הבינאריים של לקוח Kerberos.

לדוגמה, ב-Redhat או ב-CentOS, הפקודה תהיה:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

צריך להתקין את Java 8 במכונת Looker ובתיקיות PATH ו-JAVA_HOME של משתמש Looker. אם צריך, מתקינים אותו באופן מקומי בספרייה looker.

Java Cryptography Extension

  1. מורידים ומתקינים את Java Cryptography Extension (JCE) ל-Java 8 מדף ההורדה הזה של Oracle.

    • מאתרים את הספרייה jre/lib/security של התקנת Java.
    • צריך להסיר את קובצי ה-JAR הבאים מהספרייה הזו: local_policy.jar ו-US_export_policy.jar.
    • מחליפים את שני הקבצים האלה בקובצי ה-JAR שכלולים בהורדה של JCE Unlimited Strength Jurisdiction Policy Files.

    יכול להיות שאפשר להשתמש בגרסאות של Java שקודמות ל-Java 8 עם JCE מותקן, אבל לא מומלץ לעשות את זה.

  2. מעדכנים את JAVA_HOME ואת PATH ב-~looker/.bash_profile כך שיצביעו על ההתקנה הנכונה של Java ו-source ~/.bash_profile, או יוצאים מהחשבון ונכנסים אליו שוב.

  3. מאמתים את הגרסה של Java באמצעות java -version.

  4. מאמתים את משתנה הסביבה JAVA_HOME באמצעות echo $JAVA_HOME.

gss-jaas.conf

יוצרים קובץ gss-jaas.conf בספרייה looker עם התוכן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

אם צריך, אפשר להוסיף את debug=true לקובץ הזה, באופן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};

krb5.conf

בשרת שבו פועל Looker צריך להיות גם קובץ krb5.conf תקין. כברירת מחדל, הקובץ הזה נמצא בתיקייה /etc/krb5.conf. אם הוא נמצא במיקום אחר, צריך לציין את זה בסביבה (KRB5_CONFIG בסביבת המעטפת).

יכול להיות שתצטרכו להעתיק את הקובץ הזה ממחשב לקוח אחר של Kerberos.

lookerstart.cfg

מפנים לקבצים gss-jaas.conf ו-krb5.conf על ידי יצירת קובץ בספרייה looker (אותה ספרייה שמכילה את הסקריפט לטעינה בזמן ההפעלה looker) בשם lookerstart.cfg, שמכיל את השורות הבאות:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

אם קובץ krb5.conf לא נמצא ב-/etc/krb5.conf, צריך להוסיף גם את המשתנה הזה:

  -Djava.security.krb5.conf=/path/to/krb5.conf

כדי לנפות באגים, מוסיפים את המשתנים הבאים:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

לאחר מכן מפעילים מחדש את Looker עם ./looker restart.

אימות באמצעות Kerberos

אימות משתמשים

  1. אם krb5.conf לא נמצא ב-/etc/, צריך להשתמש במשתנה הסביבה KRB5_CONFIG כדי לציין את המיקום שלו.

  2. מריצים את הפקודה klist כדי לוודא שיש כרטיס חוקי במטמון הכרטיסים של Kerberos.

  3. אם אין כרטיס, מריצים את הפקודה kinit username@REALM או kinit username כדי ליצור את הכרטיס.

  4. החשבון שמשמש את Looker הוא כנראה חשבון ללא ממשק משתמש, כך שאפשר לקבל קובץ keytab מ-Kerberos כדי לאחסן את פרטי הכניסה לשימוש לטווח ארוך. כדי לקבל את כרטיס Kerberos, משתמשים בפקודה כמו kinit -k -t looker_user.keytab username@REALM.

חידוש אוטומטי של הכרטיס

מגדירים משימת cron שפועלת מדי פעם כדי לשמור כרטיס פעיל במטמון הכרטיסים של Kerberos. התדירות שבה צריך להריץ את הפקודה תלויה בהגדרות של האשכול. השדה klist צריך לציין מתי הכרטיסים יפוגו.

יצירת החיבור של Looker למסד הנתונים

כדי ליצור את החיבור בין Looker למסד הנתונים:

  1. בקטע Admin ב-Looker, בוחרים באפשרות Connections ולוחצים על Add Connection.
  2. בתפריט הנפתח Dialect (ניב), בוחרים את הגרסה של Microsoft SQL Server.

  3. בשדות מארח מרוחק ויציאה, מזינים את שם המארח והיציאה (יציאת ברירת המחדל היא 1433).

    אם אתם צריכים לציין יציאה שאינה ברירת המחדל (1433) ומסד הנתונים שלכם דורש שימוש בפסיק במקום בנקודתיים, תוכלו להוסיף useCommaHostPortSeparator=true בשדה פרמטרים נוספים של JDBC בחלק התחתון של הגדרות החיבור. כך תוכלו להשתמש בפסיק בשדה מארח מרוחק:יציאה. לדוגמה:

    jdbc:sqlserver://hostname,1434

  4. ממלאים את שאר פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים.

  5. כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על הלחצן בדיקת החיבור בקטע פרטי הסטטוס בחלק התחתון של הדף הגדרות החיבורים.

  6. אם ב-Looker מוצגת האפשרות Can Connect (אפשר להתחבר), לוחצים על Connect (התחברות) כדי ליצור את החיבור.

החיבור למסד הנתונים יתווסף לרשימה בדף Admin (ניהול) בקטע Connections (חיבורים) ב-Looker.

הגדרת החיבור ל-Looker

פועלים לפי ההוראות בדף התיעוד חיבור Looker למסד הנתונים כדי ליצור חיבור למסד הנתונים של MSSQL. בקטע Additional JDBC parameters (פרמטרים נוספים של JDBC) בדף Connection Settings (הגדרות חיבור), מוסיפים את הפרמטרים הבאים:

;integratedSecurity=true;authenticationScheme=JavaKerberos

חלק מהרשתות מוגדרות לשני תחומי Kerberos, אחד ל-Windows Active Directory והשני ל-Linux ולמערכות אחרות שאינן של Windows. במקרה כזה, כשמגדירים את תחום ה-Linux ואת תחום ה-Active Directory כך שיסמכו זה על זה, זה נקרא "אימות בין תחומים".

אם הרשת שלכם משתמשת באימות בין תחומים, אתם צריכים לציין במפורש את ה-principal של Kerberos לשרת MSSQL. בשדה Additional JDBC parameters (פרמטרים נוספים של JDBC), מוסיפים את הפרטים הבאים:

;serverSpn=service_name/FQDN\:PORT@REALM

מחליפים את FQDN ואת PORT@REALM בפרטי הרשת. לדוגמה:

;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM

בנוסף, בדף Connection Settings ב-Looker צריך להזין ערכים בשדות Username ו-Password, אבל הם לא נדרשים ל-Kerberos. מזינים ערכים פיקטיביים בשדות האלה.

בודקים את החיבור כדי לוודא שהוא מוגדר בצורה נכונה.

פרמטרים נתמכים של JDBC

ב-Microsoft SQL Server, ‏ Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters של החיבור. מידע על הפרמטרים האלה מופיע במאמרי העזרה של מסד הנתונים.

  • accessToken
  • ApplicationIntent
  • applicationName
  • authentication
  • authenticationScheme
  • cancelQueryTimeout
  • columnEncryptionSetting
  • database
  • databaseName
  • disableStatementPooling
  • domain
  • enablePrepareOnFirstPreparedStatementCall
  • Encrypt
  • failoverPartner
  • fips
  • gsscredential
  • hostNameInCertificate
  • instanceName
  • Integrated Security
  • integratedSecurity
  • jaasConfigurationName
  • keyStoreAuthentication
  • lastUpdateCount
  • locktimeout
  • loginTimeout
  • msiClientId
  • multiSubnetFailover
  • packetSize
  • password
  • portNumber
  • queryTimeout
  • realm
  • responseBuffering
  • selectMethod
  • sendStringParametersAsUnicode
  • sendTimeAsDatetime
  • serverName
  • serverPreparedStatementDiscardThreshold
  • serverSpn
  • transparentNetworkIPResolution
  • trustServerCertificate
  • useBulkCopyForBatchInsert
  • useCommaHostPortSeparator
  • user
  • workstationID
  • xopenStates

תמיכה בתכונות

כדי ש-Looker יתמוך בתכונות מסוימות, גם הניב של מסד הנתונים צריך לתמוך בהן.

החל מגרסה Looker 26.20,‏ Microsoft SQL Server 2008+ תומך בתכונות הבאות:

תכונה נתמך?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
סגירת שאילתות
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סיכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות (case-sensitive)
סוג מיקום
סוג הרשימה
מאון
מאון ייחודי
SQL Runner Show Processes
‫SQL Runner Describe Table
הצגת אינדקסים ב-SQL Runner
SQL Runner Select 10
ספירת SQL Runner
הסבר על SQL
פרטי כניסה של OAuth 2.0
הערות להוספת הקשר
איגום חיבורים
HLL sketches
מודעות מצטברת
PDT מצטברות
אלפיות השנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים של ניתוח נתונים במסד הנתונים
יומנים בהתאמה אישית

החל מגרסה 26.20 של Looker, ‏Microsoft SQL Server 2016 תומך בתכונות הבאות:

תכונה נתמך?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
סגירת שאילתות
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סיכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות (case-sensitive)
סוג מיקום
סוג הרשימה
מאון
מאון ייחודי
SQL Runner Show Processes
‫SQL Runner Describe Table
הצגת אינדקסים ב-SQL Runner
SQL Runner Select 10
ספירת SQL Runner
הסבר על SQL
פרטי כניסה של OAuth 2.0
הערות להוספת הקשר
איגום חיבורים
HLL sketches
מודעות מצטברת
PDT מצטברות
אלפיות השנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים של ניתוח נתונים במסד הנתונים
יומנים בהתאמה אישית

החל מגרסה 26.20 של Looker, ‏Microsoft SQL Server 2017 ואילך תומך בתכונות הבאות:

תכונה נתמך?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
סגירת שאילתות
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סיכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות (case-sensitive)
סוג מיקום
סוג הרשימה
מאון
מאון ייחודי
SQL Runner Show Processes
‫SQL Runner Describe Table
הצגת אינדקסים ב-SQL Runner
SQL Runner Select 10
ספירת SQL Runner
הסבר על SQL
פרטי כניסה של OAuth 2.0
הערות להוספת הקשר
איגום חיבורים
HLL sketches
מודעות מצטברת
PDT מצטברות
אלפיות השנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים של ניתוח נתונים במסד הנתונים
יומנים בהתאמה אישית