Ejemplo n.º 1
0
        public override void DocumentUsers(EDocumentUsersType usersType)
        {
            StringBuilder RetVal = new StringBuilder();

            RetVal.AppendLine(MakeSectionTitle($"Server : {_SqlServer.Name} - Users list"));

            int UserCount = 0;

            foreach (Login LoginItem in _SqlServer.Logins)
            {
                UserCount++;

                switch (usersType)
                {
                case EDocumentUsersType.Full:
                case EDocumentUsersType.List:
                default:
                    #region list
                    RetVal.Append(LoginItem.Name.AlignedLeft(40, '.'));

                    switch (LoginItem.LoginType)
                    {
                    case LoginType.WindowsGroup:
                        RetVal.Append("Windows group".AlignedLeft(20, '.'));
                        break;

                    case LoginType.WindowsUser:
                        RetVal.Append("NT user".AlignedLeft(20, '.'));
                        break;

                    case LoginType.SqlLogin:
                        RetVal.Append("SQL User".AlignedLeft(20, '.'));
                        break;
                    }

                    try {
                        RetVal.Append(LoginItem.DefaultDatabase.AlignedLeft(40, '.'));
                    } catch {
                        RetVal.Append("*** Warning: no default database ***".AlignedLeft(40, '.'));
                    }

                    RetVal.Append(LoginItem.Language.AlignedLeft(15, '.'));
                    RetVal.Append(LoginItem.IsDisabled ? "Login denied".AlignedLeft(15, '.') : "Login ok".AlignedLeft(15, '.'));

                    List <ServerRole> UserRoles = new List <ServerRole>();
                    foreach (ServerRole RoleItem in _SqlServer.Roles)
                    {
                        if (RoleItem.EnumMemberNames().Contains(LoginItem.Name))
                        {
                            UserRoles.Add(RoleItem);
                        }
                    }
                    RetVal.Append(string.Join(", ", UserRoles.Select(x => x.Name)));

                    RetVal.AppendLine();

                    break;
                    #endregion
                }
            }

            RetVal.AppendLine(MakeSectionFooter($"{UserCount} user(s) listed"));
            Output?.Invoke(RetVal.ToString());
        }
Ejemplo n.º 2
0
 public abstract void DocumentUsers(EDocumentUsersType usersType);