MySQL  8.0.19
Source Code Documentation
sql_authorization.h
Go to the documentation of this file.
1 /* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef SQL_AUTHORIZATION_INCLUDED
24 #define SQL_AUTHORIZATION_INCLUDED
25 
26 #include <functional>
27 #include <string>
28 #include <utility>
29 
30 #include "lex_string.h"
33 
34 class String;
35 class THD;
36 
37 void roles_graphml(THD *thd, String *);
39  LEX_CSTRING role_host);
41  LEX_CSTRING role_host,
42  Role_vertex_descriptor *found_vertex = 0);
44  std::string str, const std::function<bool(const std::string)> &f);
46  List_of_granted_roles *granted_roles);
48  std::function<void(const Role_id &, bool)> f);
49 /* For for get_mandatory_roles and Sys_mandatory_roles */
51 #endif /* SQL_AUTHORIZATION_INCLUDED */
MYSQL_LEX_CSTRING
Definition: mysql_lex_string.h:39
THD
Definition: sql_class.h:764
iterate_comma_separated_quoted_string
void iterate_comma_separated_quoted_string(std::string str, const std::function< bool(const std::string)> &f)
Iterate a string by comma separation and apply a function on each chunk separated by the commas.
Definition: sql_authorization.cc:4384
String
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:164
List_of_granted_roles
std::vector< std::pair< Role_id, bool > > List_of_granted_roles
Definition: auth_internal.h:259
mysql_mutex_t
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
roles_graphml
void roles_graphml(THD *thd, String *)
Definition: sql_authorization.cc:4728
host
const char * host
Definition: mysqladmin.cc:58
Role_vertex_descriptor
boost::graph_traits< Granted_roles_graph >::vertex_descriptor Role_vertex_descriptor
The data type of a vertex in the Granted_roles_graph.
Definition: sql_auth_cache.h:503
mysql_mutex_bits.h
lex_string.h
Auth_id
Storage container for default auth ids.
Definition: auth_common.h:992
user
char * user
Definition: mysqladmin.cc:59
LOCK_mandatory_roles
mysql_mutex_t LOCK_mandatory_roles
Definition: mysqld.cc:1075
sql_auth_cache.h
check_if_granted_role
bool check_if_granted_role(LEX_CSTRING user, LEX_CSTRING host, LEX_CSTRING role, LEX_CSTRING role_host)
Examines if a user@host authid is connected to a role@role_host authid by comparing all out-edges if ...
Definition: sql_authorization.cc:5906
find_if_granted_role
bool find_if_granted_role(Role_vertex_descriptor v, LEX_CSTRING role, LEX_CSTRING role_host, Role_vertex_descriptor *found_vertex=0)
Given a vertex in the roles graph, this function finds a directly connected vertex given a (role,...
Definition: sql_authorization.cc:5945
get_granted_roles
void get_granted_roles(Role_vertex_descriptor &v, List_of_granted_roles *granted_roles)
Populates a list of authorization IDs that are connected to a specified graph vertex in the global ro...
Definition: sql_authorization.cc:6008