private string GetPrivilege(DatabasePriviledge privilege) { switch (privilege) { case DatabasePriviledge.Read: return("READ"); case DatabasePriviledge.Write: return("WRITE"); case DatabasePriviledge.All: return("ALL"); default: throw new ArgumentException("Invalid value.", nameof(privilege)); } }
/// <summary> /// GRANT READ, WRITE or ALL database privileges to an existing user. /// </summary> /// <param name="privilege"></param> /// <param name="db"></param> /// <param name="username"></param> /// <returns></returns> public Task GrantPrivilegeAsync(string db, DatabasePriviledge privilege, string username) { return(ExecuteOperationWithNoResultAsync($"GRANT {GetPrivilege( privilege )} ON \"{db}\" TO {username}")); }
/// <summary> /// REVOKE READ, WRITE, or ALL database privileges from an existing user. /// </summary> /// <param name="privilege"></param> /// <param name="db"></param> /// <param name="username"></param> /// <returns></returns> public Task RevokePrivilegeAsync(string db, DatabasePriviledge privilege, string username) { return(ExecuteOperationWithNoResultAsync($"REVOKE {GetPrivilege( privilege )} ON \"{db}\" FROM {username}")); }
/// <summary> /// REVOKE READ, WRITE, or ALL database privileges from an existing user. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="privilege"></param> /// <param name="db"></param> /// <param name="username"></param> /// <returns></returns> public static async Task <InfluxResult> RevokePrivilegeAsync(this IInfluxClient client, string db, DatabasePriviledge privilege, string username) { var resultSet = await client.ExecuteOperationAsync($"REVOKE {GetPrivilege( privilege )} ON \"{db}\" FROM {username}").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }