When the shell is passed a username and the authentication method requires a password, the shell will now automatically ask the user for a password, interactively. The username may be passed either in the connection URI or as a separate command line argument.
I would like to be able to connect to an authenticated replica set with the following command when the _mongodb._tcp.mycluster SRV record existed and a TXT record existed containing authSource=admin&replicaSet=mycluster.
Using this command against the 3.6.0 shell fails because the test database is used as the auth source. This occurs because the URI parsing ignores the authSource in the TXT record because username is not also specified in the URI.
If I were to move the username to the URI, then the shell no longer prompts for a password and does not authenticate properly. i.e:
The current workaround is to specify "--authenticationDatabase admin" on the command line instead of using the TXT record.
Ideally the first example would work, and the shell would use the authSource from the URI (via the TXT record) even though the username is specified on the command line and not explicitly in the URI. The second example also seems acceptable but less consistent.