Skip to content

Commit 184392c

Browse files
docs: update README for documentation freshness
- Fix discussion link typo (#293 -> #292) - Update 'Switches not available' section to reflect current state - Most switches now implemented (-e, -f, -g, -k, -t, -z, -Z, -r, -X) - Only -j and -p[1] remain unimplemented - Add missing authentication methods to :Connect documentation - ActiveDirectoryInteractive, ActiveDirectoryAzCli, ActiveDirectoryDeviceCode - Fix ActiveDirectoryIntegrated description (no longer falls back) - Document additional authentication methods: - ActiveDirectoryWorkloadIdentity - ActiveDirectoryClientAssertion - ActiveDirectoryAzurePipelines - ActiveDirectoryEnvironment - ActiveDirectoryAzureDeveloperCli - ActiveDirectoryServicePrincipalAccessToken - SqlPassword
1 parent ca107b8 commit 184392c

1 file changed

Lines changed: 29 additions & 6 deletions

File tree

README.md

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,16 +160,19 @@ The following switches have different behavior in this version of `sqlcmd` compa
160160

161161
### Switches not available in the new sqlcmd (go-sqlcmd) yet
162162

163-
There are a few switches yet to be implemented in the new `sqlcmd` (go-sqlcmd) compared
164-
to the original ODBC based `sqlcmd`, discussion [#293](https://github.com/microsoft/go-sqlcmd/discussions/292)
165-
lists these switches. Please provide feedback in the discussion on which
166-
switches are most important to you to have implemented next in the new sqlcmd.
163+
Most switches from the original ODBC-based `sqlcmd` have been implemented. The following switches are not yet available:
167164

165+
| Switch | Description |
166+
|--------|-------------|
167+
| `-j` | Print raw error messages |
168+
| `-p[1]` | Print statistics (optional colon format) |
169+
170+
For historical context and to provide feedback, see [discussion #292](https://github.com/microsoft/go-sqlcmd/discussions/292).
168171

169172
### Miscellaneous enhancements
170173

171174
- Console output coloring (see below)
172-
- `:Connect` now has an optional `-G` parameter to select one of the authentication methods for Azure SQL Database - `SqlAuthentication`, `ActiveDirectoryDefault`, `ActiveDirectoryIntegrated`, `ActiveDirectoryServicePrincipal`, `ActiveDirectoryManagedIdentity`, `ActiveDirectoryPassword`. If `-G` is not provided, either Integrated security or SQL Authentication will be used, dependent on the presence of a `-U` username parameter.
175+
- `:Connect` now has an optional `-G` parameter to select one of the authentication methods for Azure SQL Database - `SqlAuthentication`, `ActiveDirectoryDefault`, `ActiveDirectoryIntegrated`, `ActiveDirectoryServicePrincipal`, `ActiveDirectoryManagedIdentity`, `ActiveDirectoryPassword`, `ActiveDirectoryInteractive`, `ActiveDirectoryAzCli`, `ActiveDirectoryDeviceCode`. If `-G` is not provided, either Integrated security or SQL Authentication will be used, dependent on the presence of a `-U` username parameter.
173176
- The new `--driver-logging-level` command line parameter allows you to see traces from the `go-mssqldb` client driver. Use `64` to see all traces.
174177
- Sqlcmd can now print results using a vertical format. Use the new `--vertical` command line option to set it. It's also controlled by the `SQLCMDFORMAT` scripting variable.
175178

@@ -217,7 +220,7 @@ To use AAD auth, you can use one of two command line switches:
217220

218221
`ActiveDirectoryIntegrated`
219222

220-
This method is currently not implemented and will fall back to `ActiveDirectoryDefault`.
223+
This method uses integrated Windows authentication. On Windows, it uses the current user's credentials. On Linux and macOS, it uses Kerberos authentication (requires a properly configured Kerberos environment).
221224

222225
`ActiveDirectoryPassword`
223226

@@ -237,6 +240,26 @@ Use this method when running sqlcmd on an Azure VM that has either a system-assi
237240

238241
This method authenticates the provided username as a service principal id and the password as the client secret for the service principal. Provide a username in the form `<service principal id>@<tenant id>`. Set `SQLCMDPASSWORD` variable to the client secret. If using a certificate instead of a client secret, set `AZURE_CLIENT_CERTIFICATE_PATH` environment variable to the path of the certificate file.
239242

243+
`ActiveDirectoryAzCli`
244+
245+
This method uses the Azure CLI to obtain an access token. You must be logged in to Azure CLI (`az login`) before using this method.
246+
247+
`ActiveDirectoryDeviceCode`
248+
249+
This method uses the device code flow for authentication. It displays a code that you enter at https://microsoft.com/devicelogin to authenticate.
250+
251+
#### Additional authentication methods
252+
253+
The following authentication methods are also supported via `--authentication-method`:
254+
255+
- `ActiveDirectoryWorkloadIdentity` - For workload identity federation scenarios
256+
- `ActiveDirectoryClientAssertion` - For client assertion authentication
257+
- `ActiveDirectoryAzurePipelines` - For Azure Pipelines service connections
258+
- `ActiveDirectoryEnvironment` - Uses environment variables for authentication
259+
- `ActiveDirectoryAzureDeveloperCli` - Uses Azure Developer CLI credentials
260+
- `ActiveDirectoryServicePrincipalAccessToken` - Uses a pre-obtained access token
261+
- `SqlPassword` - SQL Server authentication (same as using `-U` and `-P` without `-G`)
262+
240263
#### Environment variables for AAD auth
241264

242265
Some settings for AAD auth do not have command line inputs, and some environment variables are consumed directly by the `azidentity` package used by `sqlcmd`.

0 commit comments

Comments
 (0)