[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis page provides documentation and examples for Bigtable authentication in C++, showcasing versions from 2.11.0 up to the latest release candidate, 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eUsers can override the default authentication configuration by using \u003ccode\u003egoogle::cloud::UnifiedCredentialsOption\u003c/code\u003e, as demonstrated with a service account key file example.\u003c/p\u003e\n"],["\u003cp\u003eThe provided examples illustrate how to change the default authentication configuration for \u003ccode\u003eBigtableTableAdminClient\u003c/code\u003e and \u003ccode\u003eInstanceTableAdminClient\u003c/code\u003e, emphasizing the similarity in process across various client classes.\u003c/p\u003e\n"],["\u003cp\u003eThe page directs users to consult the "Best practices for managing service account keys" guide and the "Authentication Components" section for more detailed information on managing service accounts and using factory functions.\u003c/p\u003e\n"]]],[],null,["Version 2.16.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/bigtable-auth-example)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/bigtable-auth-example)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/bigtable-auth-example)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/bigtable-auth-example)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/bigtable-auth-example)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/bigtable-auth-example)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/bigtable-auth-example)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/bigtable-auth-example)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/bigtable-auth-example)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/bigtable-auth-example)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/bigtable-auth-example)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/bigtable-auth-example)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/bigtable-auth-example)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/bigtable-auth-example)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/bigtable-auth-example)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/bigtable-auth-example)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/bigtable-auth-example)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/bigtable-auth-example)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/bigtable-auth-example)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/bigtable-auth-example)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/bigtable-auth-example)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/bigtable-auth-example)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/bigtable-auth-example)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/bigtable-auth-example)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/bigtable-auth-example)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/bigtable-auth-example)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/bigtable-auth-example)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/bigtable-auth-example)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/bigtable-auth-example)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/bigtable-auth-example)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/bigtable-auth-example)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/bigtable-auth-example) \n\nOverride the authentication configuration\n=========================================\n\nYou can override this default using [`google::cloud::UnifiedCredentialsOption`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1UnifiedCredentialsOption.html). The following example shows how to explicitly load a service account key file. \n\n namespace bigtable = ::google::cloud::bigtable;\n [](std::string const& project_id, std::string const& instance_id,\n std::string const& table_id, std::string const& keyfile) {\n auto is = std::ifstream(keyfile);\n is.exceptions(std::ios::badbit);\n auto contents = std::string(std::istreambuf_iterator\u003cchar\u003e(is.rdbuf()), {});\n auto options =\n google::cloud::Options{}.set\u003cgoogle::cloud::UnifiedCredentialsOption\u003e(\n google::cloud::MakeServiceAccountCredentials(contents));\n auto resource = bigtable::TableResource(project_id, instance_id, table_id);\n return bigtable::Table(bigtable::MakeDataConnection(options), resource);\n }\n\nKeep 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](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys) guide for more details.\n\nChanging the default authentication configuration for other `*Client` classes is very similar, as shown in these examples:\n\n- [`BigtableTableAdminClient`](/cpp/docs/reference/bigtable/2.16.0/BigtableTableAdminClient-with-service-account-snippet)\n- [`InstanceTableAdminClient`](/cpp/docs/reference/bigtable/2.16.0/BigtableInstanceAdminClient-with-service-account-snippet)\n\nKeep 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](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys) guide for more details.\n\n###### See Also\n\n[Authentication Components](https://cloud.google.com/cpp/docs/reference/common/latest/group__guac.html) - for more information on the factory functions to create [`google::cloud::Credentials`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Credentials.html) objects."]]