Override the authentication configuration

You can override this default using google::cloud::UnifiedCredentialsOption. The following example shows how to explicitly load a service account key file.

 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: