For the complete documentation index, see llms.txt. This page is also available as Markdown.

Username and Password

1

Create the Database User

MySQL or MariaDB or Oracle

CREATE USER teleskope_ro IDENTIFIED BY '****PASSWORD****'

MS SQL

CREATE LOGIN teleskope_ro WITH PASSWORD = '****PASSWORD****';

Postgres

CREATE USER teleskope_ro WITH PASSWORD  '****PASSWORD****'
2

Grant DB User Permissions

MySQL or MariaDB

GRANT SHOW DATABASES, SELECT ON *.* TO teleskope_ro

Postgres versions 14+

GRANT pg_read_all_data TO teleskope_ro

Postgres versions < 14

SELECT format('GRANT CONNECT ON DATABASE %I TO teleskope_ro;', datname)
FROM pg_database WHERE datname NOT IN ('template0','template1') \gexec
SELECT format('GRANT USAGE ON SCHEMA %I TO teleskope_ro;', nspname)
FROM pg_namespace WHERE nspname NOT IN ('pg_toast','pg_catalog','information_schema') \gexec
SELECT format('GRANT SELECT ON ALL TABLES IN SCHEMA %I TO teleskope_ro;', nspname)
FROM pg_namespace WHERE nspname NOT IN ('pg_toast','pg_catalog','information_schema') \gexec

Oracle SQL

GRANT CONNECT TO teleskope_ro;
GRANT SELECT ANY TABLE TO teleskope_ro;
GRANT SELECT_CATALOG_ROLE TO teleskope_ro;

MS SQL

GRANT VIEW ANY DATABASE TO teleskope_ro;
DECLARE @sql NVARCHAR(MAX);
SET @sql = '';
SELECT @sql += 
    'USE [' + name + ']; 
    CREATE USER teleskope_ro FOR LOGIN teleskope_ro;
    GRANT SELECT TO teleskope_ro;
    GRANT VIEW DATABASE STATE TO teleskope_ro;' + CHAR(13)
FROM sys.databases
WHERE state = 0 AND name NOT IN ('tempdb', 'model', 'msdb', 'rdsadmin');
EXEC sp_executesql @sql;

MySQL or MariaDB

Postgres versions 14+

Postgres versions < 14

Databases created after these grants are not covered automatically. Re-run the grants, or set default privileges so future tables are readable:

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO teleskope_ro;
3

Submit the Username and Password in the Teleskope interface

Last updated

Was this helpful?