in src/Program.cs [851:873]
private void CheckPermissionsOnTable()
{
Ensure.ArgIsNotNull(m_engineKcsb, nameof(m_engineKcsb));
using (var client = KustoClientFactory.CreateCslAdminProvider(m_engineKcsb))
{
var showPrincipalAccessCommand = CslCommandGenerator.GenerateShowPrincipalAccessCommand("ingest", m_args.DatabaseName, m_args.TableName, useCurrentPrincipal: true);
var isAllowed = true;
try
{
var result = client.ExecuteControlCommand<ShowPrincipalAccessCommandResult>(m_args.DatabaseName, showPrincipalAccessCommand).Single();
isAllowed = result.IsAllowed;
}
catch
{ }
if (!isAllowed)
{
throw new Exception($"Current principal is not authorized to ingest data into table '{m_args.TableName}' in database '{m_args.DatabaseName}'");
}
}
}