Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Permissões da conta root especificadas durante a criação da instância

Última atualização: Jul 03, 2026

Ao criar uma instância do ApsaraDB for MongoDB, o sistema cria automaticamente uma conta root no banco de dados admin. As permissões dessa conta dependem da versão do MongoDB da instância.

Versão da instância

Função atribuída à conta root

MongoDB 4.2 e anteriores

Função integrada root

MongoDB 4.4 ou posterior

Função alibabaCloudAdmin (função personalizada da Alibaba Cloud)

Para verificar as capacidades da conta root, execute:

db.getSiblingDB("admin").runCommand({usersInfo: "root"});
Nota

Para obter detalhes sobre o comando usersInfo, consulte usersInfo.

Para inspecionar as permissões de uma função específica, use o comando rolesInfo. Para a função integrada root, consulte root.

Importante

Para garantir a segurança dos dados, evite usar a conta root nas operações diárias do banco de dados. Em vez disso, crie uma conta dedicada com apenas as permissões necessárias para sua carga de trabalho. Consulte Criar uma conta para uma instância do ApsaraDB for MongoDB.

Permissões da função alibabaCloudAdmin

A função alibabaCloudAdmin é personalizada do ApsaraDB for MongoDB. Ela difere da função padrão root — compreender essas diferenças ajuda a evitar erros inesperados de permissão.

Funções integradas incluídas

A função alibabaCloudAdmin combina as seguintes funções integradas do MongoDB:

Função integrada

Capacidades

readWriteAnyDatabase

Lê e grava coleções em qualquer banco de dados

userAdminAnyDatabase

Gerencia contas em qualquer banco de dados

dbAdminAnyDatabase

Consulta estatísticas e gerencia índices em qualquer banco de dados

clusterMonitor

Acessa ferramentas de monitoramento somente leitura

backup

Executa operações de backup

enableSharding

Ative sharding em um banco de dados

restore

Restaura dados de backups

Restrição ao banco de dados admin

A função alibabaCloudAdmin tem acesso somente leitura ao banco de dados admin. Ela não pode gravar nesse banco nem criar contas com permissões de gravação nele.

Importante

Em alguns cenários, podem ocorrer oscilações severas de desempenho ao gravar dados no banco de dados admin. Por esse motivo, não é possível criar usuários ou funções com permissões readWrite, dbAdmin ou dbOwner com escopo no banco de dados admin.

Diferenças em relação ao comportamento padrão do MongoDB

As permissões xxxAnyDatabase do ApsaraDB for MongoDB (como readWriteAnyDatabase) não abrangem os bancos de dados config, local e admin. No MongoDB padrão, essas funções incluem todos os bancos de dados. Considere isso ao conceder permissões para operações que envolvam esses bancos de dados de sistema.

Comandos de O&M para cluster com sharding

Para instâncias de cluster com sharding, a conta root com alibabaCloudAdmin pode executar diretamente os seguintes comandos de O&M:

flushRouterConfig, cleanupOrphaned, runCommandOnShard, splitVector, clearJumboFlag, moveChunk, splitChunk

Perguntas frequentes

Por que não consigo criar um usuário ou função com privilégios clusterAdmin, clusterManager ou hostManager?

A função alibabaCloudAdmin não inclui esses privilégios de nível de cluster. Portanto, não é possível concedê-los a usuários ou funções personalizados, pois as permissões de uma conta personalizada não podem exceder o escopo da própria conta root.

Por que não consigo criar um usuário ou função com readWrite, dbAdmin ou dbOwner no banco de dados admin?

A função alibabaCloudAdmin tem apenas permissões de leitura no banco de dados admin, logo, não pode criar contas com acesso de gravação nele. Crie usuários ou funções com essas permissões em outro banco de dados.

Como crio uma conta com acesso de leitura/gravação a todas as coleções personalizadas?

Crie a conta no banco de dados admin e atribua a função readWriteAnyDatabase:

db.getSiblingDB("admin").createUser({
  user: "myName",
  pwd: "myPassword",
  roles: ["readWriteAnyDatabase"]
})

Preciso executar comandos de O&M de cluster com sharding, mas não consigo criar uma função clusterManager. O que devo fazer?

A conta root já suporta os comandos de O&M listados na seção Comandos de O&M para cluster com sharding — use-a diretamente para essas operações.

Para executar um comando específico com uma conta personalizada, crie uma função personalizada que conceda apenas as ações necessárias. O exemplo a seguir cria um usuário capaz de executar splitVector (suportado apenas em instâncias de cluster com sharding):

db.runCommand({
  createRole: 'myRole',
  privileges: [{
    resource: { db: "", collection: "" },
    actions: ['splitVector']
  }],
  roles: ['readAnyDatabase']
})

db.getSiblingDB("admin").createUser({
  user: "myUser",
  pwd: "myPassword",
  roles: ["myRole"]
})

Por que minha nova conta recebe um erro de permissão ao usar change streams no banco de dados admin?

As funções xxxAnyDatabase no ApsaraDB for MongoDB não abrangem o banco de dados admin (diferentemente do MongoDB padrão). Conceda à conta readAnyDatabase nos outros bancos de dados e, em seguida, conceda explicitamente read no banco de dados admin:

db.adminCommand({
  grantRolesToUser: "myUser",
  roles: [{ role: "read", db: "admin" }]
})

Por que uma função criada com o exemplo do **flink-sql-connector-mongodb-cdc** não mostra permissões?

A ação listDatabases deve ser atribuída a um recurso de cluster, não a um recurso de banco de dados ou coleção. Use o seguinte comando para criar a função corretamente:

db.createRole({
  role: "flinkrole",
  privileges: [
    {
      resource: { db: "", collection: "" },
      actions: [
        "splitVector",
        "listCollections",
        "collStats",
        "find",
        "changeStream"
      ]
    },
    {
      resource: { cluster: true },
      actions: ["listDatabases"]
    }
  ],
  roles: [
    { role: "read", db: "config" }
  ]
});

Se ainda ocorrerem erros após a criação da função e do usuário, envie um ticket para entrar em contato com o suporte técnico da Alibaba Cloud.