UNPKG

mssql-change-tracking

Version:
26 lines 1.14 kB
import { writeLog } from "fast-node-logger"; /** @returns list of permissions to specific user */ export async function ctAccessStatus({ pool, dbName, userName, }) { writeLog(`ctAccessStatus`, { level: "trace" }); return pool .request() .query(ctAccessStatusQuery({ userName, dbName })) .then((result) => result.recordset); } /** * @return sql query to get list of change tracking enabled tables */ export function ctAccessStatusQuery({ dbName, userName }) { let query = `SELECT DISTINCT pr.principal_id, pr.name AS [UserName], pr.type_desc AS [User_or_Role], pr.authentication_type_desc AS [Auth_Type], pe.state_desc, pe.permission_name, pe.class_desc, o.[name] AS 'Object', pr.create_date, pr.modify_date FROM sys.database_principals AS pr JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id LEFT JOIN sys.objects AS o on (o.object_id = pe.major_id) WHERE pr.name = '${userName}'`; if (dbName) { query = `USE [${dbName}]; `.concat(query); } return query; } //# sourceMappingURL=change-tracking-access-status.js.map