Microsoft SQL Server‏ (MSSQL)

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

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

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

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

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

כדי להשתמש ב-Looker, צריך להגדיר "אימות של SQL Server" בשרת MSSQL. אם שרת ה-MSSQL מוגדר רק ל-Windows Integrated Authentication, צריך לשנות את הגדרת השרת ל-Windows Integrated Authentication and 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 לבצע SELECT מטבלאות

כדי להריץ שאילתות ב-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

כדי לוודא שלקוח Kerberos מותקן במכונה של Looker, מריצים את הפקודה kinit. אם לקוח 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 כדי לאחסן את פרטי הכניסה לשימוש לטווח ארוך. משתמשים בפקודה כמו kinit -k -t looker_user.keytab username@REALM כדי לקבל את כרטיס Kerberos.

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

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

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

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

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

  3. בשדות Remote Host ו-Port, מזינים את שם המארח והיציאה (יציאת ברירת המחדל היא 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 בדף Connection Settings, מוסיפים את הפרמטרים הבאים:

;integratedSecurity=true;authenticationScheme=JavaKerberos

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

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

;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 יתמוך בתכונות מסוימות, גם הניב של מסד הנתונים צריך לתמוך בהן.

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

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

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

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

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

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