namespace spanner = ::google::cloud::spanner;
[](std::string const& project_id, std::string const& instance_id,
std::string const& database_id, std::string const& keyfile) {
auto is = std::ifstream(keyfile);
is.exceptions(std::ios::badbit);
auto contents = std::string(std::istreambuf_iterator<char>(is.rdbuf()), {});
auto options =
google::cloud::Options{}.set<google::cloud::UnifiedCredentialsOption>(
google::cloud::MakeServiceAccountCredentials(contents));
return spanner::Client(spanner::MakeConnection(
spanner::Database(project_id, instance_id, database_id), options));
}
Keep in mind that we chose this as an example because it is relatively easy to understand. Consult the [Best practices for managing service account keys] guide for more details.
Follow these links to find examples for other *Client classes:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-21 UTC."],[[["This page provides access to documentation for various versions of the Spanner C++ client library, ranging from version 2.11.0 up to the latest release candidate, 2.37.0-rc."],["The content includes examples of how to override the default authentication configuration using `google::cloud::UnifiedCredentialsOption`, specifically showing how to load a service account key file."],["The documentation emphasizes that the service account key file example is chosen for its simplicity, and users should refer to the \"Best practices for managing service account keys\" guide for more detailed information."],["Links are provided to find similar authentication examples for other client classes, such as `DatabaseAdminClient` and `InstanceAdminClient`, in version 2.20.0."]]],[]]