> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# hasPermission

<div className="kinetica-doxygen">
  <div id="ad740516d31f0ac8d62a590aa2878a277" />

  <h2 className="memtitle"><span className="permalink"><a href="#ad740516d31f0ac8d62a590aa2878a277">◆ </a></span>hasPermission() <span className="overload">\[1/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> gpudb::GPUdb::hasPermission </td>
          <td>(</td>
          <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionRequest">HasPermissionRequest</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">request\_</span></span></td>
          <td>)</td>
          <td> const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Checks if the specified user has the specified permission on the specified object. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionRequest">Request</a> object containing the parameters for the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the result of the operation. </div>
      </div>
    </div>
  </div>

  <div id="aebb61f251c3e6b98ba7e548e8a29d725" />

  <h2 className="memtitle"><span className="permalink"><a href="#aebb61f251c3e6b98ba7e548e8a29d725">◆ </a></span>hasPermission() <span className="overload">\[2/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> & gpudb::GPUdb::hasPermission </td>
          <td>(</td>
          <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionRequest">HasPermissionRequest</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">request\_</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Checks if the specified user has the specified permission on the specified object. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionRequest">Request</a> object containing the parameters for the operation. </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>
    </div>
  </div>

  <div id="a1b210b587020332f624a3f593b06cd59" />

  <h2 className="memtitle"><span className="permalink"><a href="#a1b210b587020332f624a3f593b06cd59">◆ </a></span>hasPermission() <span className="overload">\[3/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> gpudb::GPUdb::hasPermission </td>
          <td>(</td>
          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">principal</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">object</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">objectType</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">permission</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::map\< std::string, std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">options</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Checks if the specified user has the specified permission on the specified object. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">principal</td>
              <td>Name of the user for which the permission is being checked. Must be an existing user. If blank, will use the current user. The default value is ''. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">object</td>
              <td>Name of object to check for the requested permission. It is recommended to use a fully-qualified name when possible. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">objectType</td>

              <td>
                The type of object being checked. Supported values:

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a767c126386b1dc1521403225ca5f2f23">has\_permission\_catalog</a>: External Catalog </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a03af6d590b45321bb2e35fed6828e950">has\_permission\_context</a>: Context </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a090ccf7eb4ef2ad2ff9ed11b17f49c7c">has\_permission\_credential</a>: Credential </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#aa62f75fd6edf6daa61e954069cf4e5fe">has\_permission\_datasink</a>: Data Sink </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a0c04c6550a9e464de2859f98ff037732">has\_permission\_datasource</a>: Data Source </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a4cbca7d37ce5bebc97e7b04c0caca9a3">has\_permission\_directory</a>: KiFS File Directory </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab6cacce8a91d52b7b6b944d3b72be748">has\_permission\_graph</a>: A Graph object </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3ba61d0d3e9837d76b737e4dea2ac875">has\_permission\_proc</a>: UDF Procedure </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#abafb41b476981436f70a94dbeb2bb01d">has\_permission\_schema</a>: Schema </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#adae5146b883404baa649cd512ad4a0d8">has\_permission\_sql\_proc</a>: SQL Procedure </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a51fba795646bb9859ec8285c6b1697bf">has\_permission\_system</a>: System-level access </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a735ac696b15c26bda42e5ac8b83c30b1">has\_permission\_table</a>: Database Table </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#af0c06b4f6465463098bfee9da41ee93a">has\_permission\_table\_monitor</a>: Table monitor </li>
                </ul>
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">permission</td>

              <td>
                Permission to check for. Supported values:

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a8788ef65be6c9b2c243d14d18121a882">has\_permission\_admin</a>: Full read/write and administrative access on the object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a71b90d379708ccc0a1f1e0b1451c08de">has\_permission\_connect</a>: Connect access on the given data source or data sink. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a020aa4e42a19ed5f5b2ee46885c69eb0">has\_permission\_create</a>: Ability to create new objects of this type. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afec66c3b938351e81d2678b4f3bba9e9">has\_permission\_delete</a>: Delete rows from tables. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae2de46a467eeab9af50435966251eae6">has\_permission\_execute</a>: Ability to Execute the Procedure object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a8fde46efe1ecc83cbfe296db3bc885b3">has\_permission\_insert</a>: Insert access to tables. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6d4a5cc82e45ffd2dff7f1eadf66ea45">has\_permission\_monitor</a>: Monitor logs and statistics. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3c3964fa47c92ef20cd3413481e8d4f3">has\_permission\_read</a>: Ability to read, list and use the object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a18ef8628741c5aa01413b020f3334b21">has\_permission\_send\_alert</a>: Ability to send system alerts. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a53c6486ead60a419192fe8cd1e4622c8">has\_permission\_update</a>: Update access to the table. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a35e4f6e1898c173bc941a92045c58c0d">has\_permission\_user\_admin</a>: Access to administer users and roles that do not have system\_admin permission. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ace00eb2e18611481e698239310595e4f">has\_permission\_write</a>: Access to write, change and delete objects. </li>
                </ul>
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a51a3d6cf6178e3b560e79430f15cd799">has\_permission\_no\_error\_if\_not\_exists</a>: If <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">false</a> will return an error if the provided <span className="em arg">object</span> does not exist or is blank. If <a className="el" href="/content/api/cpp/namespacegpudb#ab1d00c71f5a315f1280671f39d1cff56">true</a> then it will return <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">false</a> for <a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse#a34fdce033e77733b1438ac249294080e">hasPermission</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab1d00c71f5a315f1280671f39d1cff56">has\_permission\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">has\_permission\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">has\_permission\_false</a>.
                  </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the result of the operation. </div>
      </div>
    </div>
  </div>

  <div id="ad4b2f3ea35b07dc86431bb1483ead30b" />

  <h2 className="memtitle"><span className="permalink"><a href="#ad4b2f3ea35b07dc86431bb1483ead30b">◆ </a></span>hasPermission() <span className="overload">\[4/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> & gpudb::GPUdb::hasPermission </td>
          <td>(</td>
          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">principal</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">object</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">objectType</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">permission</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::map\< std::string, std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">options</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">HasPermissionResponse</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Checks if the specified user has the specified permission on the specified object. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">principal</td>
              <td>Name of the user for which the permission is being checked. Must be an existing user. If blank, will use the current user. The default value is ''. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">object</td>
              <td>Name of object to check for the requested permission. It is recommended to use a fully-qualified name when possible. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">objectType</td>

              <td>
                The type of object being checked. Supported values:

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a767c126386b1dc1521403225ca5f2f23">has\_permission\_catalog</a>: External Catalog </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a03af6d590b45321bb2e35fed6828e950">has\_permission\_context</a>: Context </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a090ccf7eb4ef2ad2ff9ed11b17f49c7c">has\_permission\_credential</a>: Credential </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#aa62f75fd6edf6daa61e954069cf4e5fe">has\_permission\_datasink</a>: Data Sink </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a0c04c6550a9e464de2859f98ff037732">has\_permission\_datasource</a>: Data Source </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a4cbca7d37ce5bebc97e7b04c0caca9a3">has\_permission\_directory</a>: KiFS File Directory </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab6cacce8a91d52b7b6b944d3b72be748">has\_permission\_graph</a>: A Graph object </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3ba61d0d3e9837d76b737e4dea2ac875">has\_permission\_proc</a>: UDF Procedure </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#abafb41b476981436f70a94dbeb2bb01d">has\_permission\_schema</a>: Schema </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#adae5146b883404baa649cd512ad4a0d8">has\_permission\_sql\_proc</a>: SQL Procedure </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a51fba795646bb9859ec8285c6b1697bf">has\_permission\_system</a>: System-level access </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a735ac696b15c26bda42e5ac8b83c30b1">has\_permission\_table</a>: Database Table </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#af0c06b4f6465463098bfee9da41ee93a">has\_permission\_table\_monitor</a>: Table monitor </li>
                </ul>
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">permission</td>

              <td>
                Permission to check for. Supported values:

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a8788ef65be6c9b2c243d14d18121a882">has\_permission\_admin</a>: Full read/write and administrative access on the object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a71b90d379708ccc0a1f1e0b1451c08de">has\_permission\_connect</a>: Connect access on the given data source or data sink. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a020aa4e42a19ed5f5b2ee46885c69eb0">has\_permission\_create</a>: Ability to create new objects of this type. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afec66c3b938351e81d2678b4f3bba9e9">has\_permission\_delete</a>: Delete rows from tables. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae2de46a467eeab9af50435966251eae6">has\_permission\_execute</a>: Ability to Execute the Procedure object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a8fde46efe1ecc83cbfe296db3bc885b3">has\_permission\_insert</a>: Insert access to tables. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6d4a5cc82e45ffd2dff7f1eadf66ea45">has\_permission\_monitor</a>: Monitor logs and statistics. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3c3964fa47c92ef20cd3413481e8d4f3">has\_permission\_read</a>: Ability to read, list and use the object. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a18ef8628741c5aa01413b020f3334b21">has\_permission\_send\_alert</a>: Ability to send system alerts. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a53c6486ead60a419192fe8cd1e4622c8">has\_permission\_update</a>: Update access to the table. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a35e4f6e1898c173bc941a92045c58c0d">has\_permission\_user\_admin</a>: Access to administer users and roles that do not have system\_admin permission. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ace00eb2e18611481e698239310595e4f">has\_permission\_write</a>: Access to write, change and delete objects. </li>
                </ul>
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a51a3d6cf6178e3b560e79430f15cd799">has\_permission\_no\_error\_if\_not\_exists</a>: If <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">false</a> will return an error if the provided <span className="em arg">object</span> does not exist or is blank. If <a className="el" href="/content/api/cpp/namespacegpudb#ab1d00c71f5a315f1280671f39d1cff56">true</a> then it will return <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">false</a> for <a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse#a34fdce033e77733b1438ac249294080e">hasPermission</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab1d00c71f5a315f1280671f39d1cff56">has\_permission\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">has\_permission\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a044212fe1d24da28931aa217400a0a0e">has\_permission\_false</a>.
                  </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1HasPermissionResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>
    </div>
  </div>
</div>
