package fsql // Системные запросы к базе DEPO (MSSQL): есть ли таблица, колонки, права логина bj, процедуры. // Варианты для Firebird — в fb.go. // Cat01 — таблица видна логину bj (@p1 — dbo.ИМЯ). var Cat01 = "SELECT CASE WHEN OBJECT_ID(@p1, 'U') IS NULL THEN 0 ELSE 1 END" // Cat02 — колонки таблицы (@p1 — dbo.ИМЯ). var Cat02 = "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID(@p1)" // Cat03 — у логина есть право @p2 (SELECT/INSERT/UPDATE/DELETE) на таблицу @p1. var Cat03 = "SELECT ISNULL(HAS_PERMS_BY_NAME(@p1, 'OBJECT', @p2), 0)" // Cat04 — в таблице @t есть колонка @c. var Cat04 = "SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@t AND COLUMN_NAME=@c" // Cat05 — у логина есть право запускать процедуру @p. var Cat05 = "SELECT COUNT(*) FROM fn_my_permissions(@p,'OBJECT') WHERE permission_name='EXECUTE'" // Cat06 — объект @n типа @t (U — таблица, P — процедура) есть в базе. var Cat06 = "SELECT CASE WHEN OBJECT_ID(@n, @t) IS NULL THEN 0 ELSE 1 END" // Cat07 — пользователь базы @n (для EXECUTE AS в процедурах обработки). var Cat07 = "SELECT USER_ID(@n)"