mssql-change-tracking
Version:
MS SQL server change tracking functions
26 lines • 1.14 kB
JavaScript
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