Security in Mysql Abstract

Total Page:16

File Type:pdf, Size:1020Kb

Security in Mysql Abstract Security in MySQL Abstract This is the MySQL Security Guide extract from the MySQL 5.6 Reference Manual. For legal information, see the Legal Notices. For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users. Document generated on: 2021-09-28 (revision: 70916) Table of Contents Preface and Legal Notices ............................................................................................................ v 1 Security ..................................................................................................................................... 1 2 General Security Issues ............................................................................................................. 3 2.1 Security Guidelines ......................................................................................................... 3 2.2 Keeping Passwords Secure ............................................................................................. 4 2.2.1 End-User Guidelines for Password Security ........................................................... 5 2.2.2 Administrator Guidelines for Password Security ..................................................... 6 2.2.3 Passwords and Logging ....................................................................................... 6 2.2.4 Password Hashing in MySQL ............................................................................... 7 2.2.5 Implications of Password Hashing Changes in MySQL 4.1 for Application Programs .................................................................................................................... 12 2.3 Making MySQL Secure Against Attackers ...................................................................... 12 2.4 Security-Related mysqld Options and Variables .............................................................. 14 2.5 How to Run MySQL as a Normal User .......................................................................... 15 2.6 Security Considerations for LOAD DATA LOCAL ............................................................ 15 2.7 Client Programming Security Guidelines ......................................................................... 17 3 Postinstallation Setup and Testing ............................................................................................ 21 3.1 Initializing the Data Directory ......................................................................................... 21 3.1.1 Problems Running mysql_install_db .................................................................... 23 3.2 Starting the Server ........................................................................................................ 24 3.2.1 Troubleshooting Problems Starting the MySQL Server ......................................... 25 3.3 Testing the Server ........................................................................................................ 27 3.4 Securing the Initial MySQL Accounts ............................................................................. 28 3.5 Starting and Stopping MySQL Automatically ................................................................... 32 4 Access Control and Account Management ................................................................................ 35 4.1 Account User Names and Passwords ............................................................................ 36 4.2 Privileges Provided by MySQL ...................................................................................... 38 4.3 Grant Tables ................................................................................................................. 44 4.4 Specifying Account Names ............................................................................................ 50 4.5 Access Control, Stage 1: Connection Verification ............................................................ 52 4.6 Access Control, Stage 2: Request Verification ................................................................ 55 4.7 Adding Accounts, Assigning Privileges, and Dropping Accounts ....................................... 57 4.8 When Privilege Changes Take Effect ............................................................................. 60 4.9 Assigning Account Passwords ....................................................................................... 60 4.10 Server Handling of Expired Passwords ......................................................................... 62 4.11 Pluggable Authentication ............................................................................................. 64 4.12 Proxy Users ................................................................................................................ 68 4.13 Setting Account Resource Limits .................................................................................. 74 4.14 Troubleshooting Problems Connecting to MySQL ......................................................... 76 4.15 SQL-Based Account Activity Auditing ........................................................................... 80 5 Using Encrypted Connections ................................................................................................... 83 5.1 Configuring MySQL to Use Encrypted Connections ........................................................ 84 5.2 Encrypted Connection TLS Protocols and Ciphers .......................................................... 86 5.3 Creating SSL and RSA Certificates and Keys ................................................................. 90 5.3.1 Creating SSL Certificates and Keys Using openssl ............................................... 90 5.3.2 Creating RSA Keys Using openssl ...................................................................... 95 5.4 SSL Library-Dependent Capabilities ............................................................................... 95 5.5 Connecting to MySQL Remotely from Windows with SSH ............................................... 96 6 Security Plugins ....................................................................................................................... 99 6.1 Authentication Plugins ................................................................................................. 100 6.1.1 Native Pluggable Authentication ........................................................................ 100 6.1.2 Old Native Pluggable Authentication .................................................................. 101 6.1.3 Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin ....................................................................................................................... 102 6.1.4 SHA-256 Pluggable Authentication .................................................................... 105 iii Security in MySQL 6.1.5 Client-Side Cleartext Pluggable Authentication ................................................... 109 6.1.6 PAM Pluggable Authentication .......................................................................... 110 6.1.7 Windows Pluggable Authentication .................................................................... 120 6.1.8 Socket Peer-Credential Pluggable Authentication ............................................... 124 6.1.9 Test Pluggable Authentication ........................................................................... 126 6.2 The Connection-Control Plugins ................................................................................... 128 6.2.1 Connection-Control Plugin Installation ................................................................ 128 6.2.2 Connection-Control System and Status Variables ............................................... 132 6.3 The Password Validation Plugin ................................................................................... 134 6.3.1 Password Validation Plugin Installation .............................................................. 135 6.3.2 Password Validation Plugin Options and Variables ............................................. 136 6.4 MySQL Enterprise Audit .............................................................................................. 140 6.4.1 Installing MySQL Enterprise Audit ..................................................................... 142 6.4.2 MySQL Enterprise Audit Security Considerations ............................................... 143 6.4.3 Audit Log File Formats ..................................................................................... 143 6.4.4 Configuring Audit Logging Characteristics .......................................................... 153 6.4.5 Audit Log Filtering ............................................................................................ 155 6.4.6 Audit Log Reference ......................................................................................... 157 6.4.7 Audit Log Restrictions ....................................................................................... 165 6.5 MySQL Enterprise Firewall .......................................................................................... 165 6.5.1 Elements of MySQL Enterprise Firewall ............................................................. 166 6.5.2 Installing or Uninstalling MySQL Enterprise Firewall ........................................... 166 6.5.3 Using MySQL Enterprise Firewall ...................................................................... 169 6.5.4 MySQL Enterprise Firewall Reference
Recommended publications
  • Mysql Workbench Mysql Workbench
    MySQL Workbench MySQL Workbench Abstract This manual documents the MySQL Workbench SE version 5.2 and the MySQL Workbench OSS version 5.2. If you have not yet installed MySQL Workbench OSS please download your free copy from the download site. MySQL Workbench OSS is available for Windows, Mac OS X, and Linux. Document generated on: 2012-05-01 (revision: 30311) For legal information, see the Legal Notice. Table of Contents Preface and Legal Notice ................................................................................................................. vii 1. MySQL Workbench Introduction ..................................................................................................... 1 2. MySQL Workbench Editions ........................................................................................................... 3 3. Installing and Launching MySQL Workbench ................................................................................... 5 Hardware Requirements ............................................................................................................. 5 Software Requirements .............................................................................................................. 5 Starting MySQL Workbench ....................................................................................................... 6 Installing MySQL Workbench on Windows .......................................................................... 7 Launching MySQL Workbench on Windows .......................................................................
    [Show full text]
  • Mysql Presentation
    MySQL Presentation Group members: Marco Tony Kassis Nourhan Sakr Roba Bairakdar Outline S What is MySQL? S History S Uses S Platforms and Interfaces S GUIs S Syntax S Why MySQL? What is MySQL? S It is the world’s most commonly used RDBMS S It is named after developer Michael Widenius; daughter, MY S Its source code is available under the terms of the GNU General Public License. S MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned by Oracle Corporation S MySQL is used in high-profile, large-scale World Wide Web products, including Wikipedia, Google, Facebook and Twitter. History S Originally developed by Michael Widenius and David Axmark in 1994 S First release on 23rd of May 1995 S Windows version was released in 1998 S … S MySQL server 5.5 was released in December 2010 Uses S It is the most popular choice of database for use in web applications S It is a central component of the widely used LAMP open source web application software stack (LAMP: Linux, Apache, MySQL, Perl/PHP/Python) Platforms and interfaces S MySQL is written in C and C++ S It works on many different system platforms, including Linux, Mac OS X, Solaris, etc. S Some programming languages include libraries for accessing MySQL databases. These include MySQL Connector/Net for integration with Microsoft’s Visual Studio and JDBC driver for Java Graphical User Interface S MySQL has no GUI tools to administer the databases or manage the data contained S Official MySQL Workbench enables users to graphically administer MySQL databases
    [Show full text]
  • Mr. Marten Mickos, CEO, Mysql AB
    Monetary and Social Economics of Information Sharing Fujitsu Labs of America Technology Symposium 2007 Mårten Mickos, CEO, MySQL AB Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 1 "The future is here, it's just not widely distributed yet." William Gibson Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 2 The World is Going Online 1 billion internet users - nearly 3 billion mobile phone users Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 3 Disruptive Innovations SOFTWARE BUSINESS DEVELOPMENT MODEL MODEL ONLINE ROLE OF ORGANISATIONAL SOFTWARE MODEL Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 4 The Internet Keeps Growing Netcraft: Total Sites Across All Domains August 1995 - October 2007 Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 5 From Web to Enterprise 66% Are Deploying MySQL or Are Planning To Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 6 Online, People ... Communicate ... Connect ... Share ... Play ... Trade ... craigslist Search & Look Up Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 7 An Architecture of Participation Time Magazine 2006 Person of the Year: You Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 8 Why Software Freedom is so Powerful Number of developers who built our current information Number of developers on the society internet today. 100X Copyright 2007 MySQL AB The World’s Most Popular Open Source Database 9 Production by Amateurs "The highest and best form of efficiency is the spontaneous cooperation of a free people." Bernard Baruch, Financier and Roosevelt advisor, 1870-1965 Alla of the above run on MySQL.
    [Show full text]
  • Beyond Relational Databases
    EXPERT ANALYSIS BY MARCOS ALBE, SUPPORT ENGINEER, PERCONA Beyond Relational Databases: A Focus on Redis, MongoDB, and ClickHouse Many of us use and love relational databases… until we try and use them for purposes which aren’t their strong point. Queues, caches, catalogs, unstructured data, counters, and many other use cases, can be solved with relational databases, but are better served by alternative options. In this expert analysis, we examine the goals, pros and cons, and the good and bad use cases of the most popular alternatives on the market, and look into some modern open source implementations. Beyond Relational Databases Developers frequently choose the backend store for the applications they produce. Amidst dozens of options, buzzwords, industry preferences, and vendor offers, it’s not always easy to make the right choice… Even with a map! !# O# d# "# a# `# @R*7-# @94FA6)6 =F(*I-76#A4+)74/*2(:# ( JA$:+49>)# &-)6+16F-# (M#@E61>-#W6e6# &6EH#;)7-6<+# &6EH# J(7)(:X(78+# !"#$%&'( S-76I6)6#'4+)-:-7# A((E-N# ##@E61>-#;E678# ;)762(# .01.%2%+'.('.$%,3( @E61>-#;(F7# D((9F-#=F(*I## =(:c*-:)U@E61>-#W6e6# @F2+16F-# G*/(F-# @Q;# $%&## @R*7-## A6)6S(77-:)U@E61>-#@E-N# K4E-F4:-A%# A6)6E7(1# %49$:+49>)+# @E61>-#'*1-:-# @E61>-#;6<R6# L&H# A6)6#'68-# $%&#@:6F521+#M(7#@E61>-#;E678# .761F-#;)7-6<#LNEF(7-7# S-76I6)6#=F(*I# A6)6/7418+# @ !"#$%&'( ;H=JO# ;(\X67-#@D# M(7#J6I((E# .761F-#%49#A6)6#=F(*I# @ )*&+',"-.%/( S$%=.#;)7-6<%6+-# =F(*I-76# LF6+21+-671># ;G';)7-6<# LF6+21#[(*:I# @E61>-#;"# @E61>-#;)(7<# H618+E61-# *&'+,"#$%&'$#( .761F-#%49#A6)6#@EEF46:1-#
    [Show full text]
  • Guide to Secure Software Development in Ruby
    Fedora Security Team Secure Ruby Development Guide Guide to secure software development in Ruby Ján Rusnačko Secure Ruby Development Guide Fedora Security Team Secure Ruby Development Guide Guide to secure software development in Ruby Edition 1 Author Ján Rusnačko [email protected] Copyright © 2014 Ján Rusnačko. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/ Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
    [Show full text]
  • XAMPP Web Development Stack
    XAMPP Web Development Stack Overview @author R.L. Martinez, Ph.D. The steps below outline the processes for installing the XAMPP stack on a local machine. The XAMPP (pronounced Zamp) stack includes the following: Apache HTTP Server, MariaDB (essentially MySQL), Database Server, Perl, and the PHP Interpreter. The “X” in XAMPP is used to signify the cross-platform compatibility of the stack. The Apache HTTP Server and PHP are required to run phpMyAdmin which is a PHP application that is used for database administration tasks such as creating databases and tables, adding users, etc. Alternative to XAMPP If you have experience with MySQL Workbench, you may prefer to install MySQL Server and MySQL Workbench via the MySQL Installer. MySQL Workbench performs the same functions as phpMyAdmin. However, unlike phpMyAdmin which is a web-based application, MySQL Workbench is a locally installed application and therefore does not require an HTTP Server (e.g. Apache) to run. Installing XAMPP Many of the steps listed have several alternatives (such as changing MySQL passwords via a command line) and students are welcomed and encouraged to explore alternatives. 1. Download XAMPP from the URL below and place the installer (.exe) in the location where you want to install XAMPP. Placing the installer (.exe) in the same location as the intended installation is not required but preferred. http://www.apachefriends.org/download.html Page 1 of 17 XAMPP Web Development Stack 2. See the warning which recommends not installing to C:\Program Files (x86) which can be restricted by UAC (User Account Control). In the steps below XAMPP is installed to a USB flash drive for portability.
    [Show full text]
  • Mariadb Presentation
    THE VALUE OF OPEN SOURCE MICHAEL ”MONTY” WIDENIUS Entrepreneur, MariaDB Hacker, MariaDB CTO MariaDB Corporation AB 2019-09-25 Seoul 11 Reasons Open Source is Better than Closed Source ● Using open standards (no lock in into proprietary standards) ● Resource friendly; OSS software tend to work on old hardware ● Lower cost; Usually 1/10 of closed source software ● No cost for testing the full software ● Better documentation and more troubleshooting resources ● Better support, in many cases directly from the developers ● Better security, auditability (no trap doors and more eye balls) ● Better quality; Developed together with users ● Better customizability; You can also participate in development ● No vendor lock in; More than one vendor can give support ● When using open source, you take charge of your own future Note that using open source does not mean that you have to become a software producer! OPEN SOURCE, THE GOOD AND THE BAD ● Open source is a better way to develop software ● More developers ● More spread ● Better code (in many cases) ● Works good for projects that can freely used by a lot of companies in their production or products. ● It's very hard to create a profitable company developing an open source project. ● Not enough money to pay developers. ● Hard to get money and investors for most projects (except for infrastructure projects like libraries or daemon services). OPEN SOURCE IS NATURAL OR WHY OPEN SOURCE WORKS ● You use open source because it's less expensive (and re-usable) ● You solve your own problems and get free help and development efforts from others while doing it.
    [Show full text]
  • High Performance Mysql Other Microsoft .NET Resources from O’Reilly
    High Performance MySQL Other Microsoft .NET resources from O’Reilly Related titles Managing and Using MySQL PHP Cookbook™ MySQL Cookbook™ Practical PostgreSQL MySQL Pocket Reference Programming PHP MySQL Reference Manual SQL Tuning Learning PHP Web Database Applications PHP 5 Essentials with PHP and MySQL .NET Books dotnet.oreilly.com is a complete catalog of O’Reilly’s books on Resource Center .NET and related technologies, including sample chapters and code examples. ONDotnet.com provides independent coverage of fundamental, interoperable, and emerging Microsoft .NET programming and web services technologies. Conferences O’Reilly Media bring diverse innovators together to nurture the ideas that spark revolutionary industries. We specialize in docu- menting the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit con- ferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier online refer- ence library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. SECOND EDITION High Performance MySQL Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz, and Derek J. Balling Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo High Performance MySQL, Second Edition by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz, and Derek J. Balling Copyright © 2008 O’Reilly Media, Inc. All rights reserved. Printed in the United States of America.
    [Show full text]
  • Mysql Database Administrator
    MySQL Database Administrator Author: Kacper Wysocki Contact: [email protected] Date: December 2010 License: Creative Commons: CC BY-SA Oslo, December 2010, CC BY-SA Contents Introduction 5 Introductions everybody 5 About this course 5 Course outline 6 Course schedule 6 How to do excersies 6 MySQL: history and future 6 MySQL: the present 7 MySQL: the future 7 MySQL compared to other DBs 7 MySQL language support 8 Embedding MySQL 8 Getting help with MySQL 8 MySQL architecture 9 Modular architecture 9 The MySQL modules 9 Client/server architecture 10 Installing MySQL 10 Installation process 10 Distribution packages 11 MySQL official binaries 11 Deploying sandboxes 12 Installing from source 13 Server Startup and Shutdown 14 MySQL relevant files 15 Excersises: Installation 15 Upgrading MySQL 16 Clients: the mysql* suite 16 Client: mysql 16 Excersise: Client mysql 16 Excersise: mysql CLI 17 Further CLI fun 17 Digression: some SQL 18 Client: mysqladmin 18 Excersises: Client: mysql 18 Clients: applications and libraries 18 Oslo, December 2010, CC BY-SA migration 19 Importing data: timezones 19 Importing data 19 Excersises: importing data 20 Excersises: time zones 20 Exporting data 20 Excersises: Exporting data 21 Configuration 21 More configuration 21 Run-time Variables 22 MySQL Architecture 23 Storage Engines 23 Storage Engines 23 Storage Engines types 23 MyISAM 24 MYISAM_MRG 24 InnoDB 24 Excersises: InnoDB 24 FEDERATED 25 CSV 25 ARCHIVE 25 MEMORY 25 BLACKHOLE 25 So... which engine? 26 Engine Excersises 26 Implementing Security 26
    [Show full text]
  • Navicat Premium Romania V12
    Table of Contents Chapter 1 - Introduction 8 About Navicat 8 Installation 10 End-User License Agreement 12 Chapter 2 - User Interface 18 Main Window 18 Navigation Pane 19 Object Pane 20 Information Pane 21 Chapter 3 - Navicat Cloud 23 About Navicat Cloud 23 Manage Navicat Cloud 24 Chapter 4 - Connection 27 About Connection 27 General Settings 28 RDBMS 28 MongoDB 30 SSL Settings 31 SSH Settings 33 HTTP Settings 34 Advanced Settings 34 Databases / Attached Databases Settings 37 Chapter 5 - Server Objects 38 About Server Objects 38 MySQL / MariaDB 38 Databases 38 Tables 38 Views 39 Procedures / Functions 40 Events 41 Maintain Objects 41 Oracle 41 Schemas 41 Tables 42 Views 42 Materialized Views 43 Procedures / Functions 44 Packages 45 Recycle Bin 46 Other Objects 47 1 Maintain Objects 47 PostgreSQL 49 Databases & Schemas 49 Tables 50 Views 51 Materialized Views 51 Functions 52 Types 53 Foreign Servers 53 Other Objects 54 Maintain Objects 54 SQL Server 54 Databases & Schemas 54 Tables 55 Views 56 Procedures / Functions 56 Other Objects 57 Maintain Objects 58 SQLite 59 Databases 59 Tables 59 Views 60 Other Objects 60 Maintain Objects 61 MongoDB 61 Databases 61 Collections 61 Views 62 Functions 62 Indexes 63 MapReduce 63 GridFS 63 Maintain Objects 64 Chapter 6 - Data Viewer 66 About Data Viewer 66 RDBMS 66 RDBMS Data Viewer 66 Use Navigation Bar 66 Edit Records 67 Sort / Find / Replace Records 73 Filter Records 75 Manipulate Raw Data 75 2 Format Data View 76 MongoDB 77 MongoDB Data Viewer 77 Use Navigation Bar 78 Grid View 79 Tree View 85 JSON
    [Show full text]
  • Mysql Users Conference 2005, Keynote Speeches
    MySQL Users Conference April 18-21, 2005, Santa Clara, California Michael Tiemann Defining Open Source Open source is an indispensable element of the software industry but how did it get that way? Was it due to the success of pioneers such as Stallman and Torvalds? Was it the innovative licensing models, the collaborative community or was it just market economics at work? Michael Tiemann, founder of RedHat, President of the Open Source Initiative, Coder and long term open source advocate explores the many dimensions of the open source movement and poses some interesting questions to its community. Michael Teimann The characteristics of the open source movement and its community are not exclusive to the software industry. It runs far deeper than a single industry and drives to the core of human nature. Michael Tiemann shows how various innovations throughout history have only been possible through the architecture of participation. In the software industry distributed problem solving and code sharing has been instrumental to the success of Linux, MySQL, Apache and JBoss. The open source movement has redistributed the power structure in the operating system, database, web server and application server markets. Like Robin Hood and his Merry Men, it has taken from the few and given to the many. Keynote address Date: Tuesday, April 19 Time: 9:15am - 10:00am The Open Source Definition has changed the landscape of commercial software development--for the better. How might this new commercial interest change our notion of what makes for a "better" open source license? Some thoughts from a commercial /and/ OSI perspective.
    [Show full text]
  • Towards the Universal Spatial Data Model Based Indexing and Its Implementation in Mysql
    Towards the universal spatial data model based indexing and its implementation in MySQL Evangelos Katsikaros Kongens Lyngby 2012 IMM-M.Sc.-2012-97 Technical University of Denmark Informatics and Mathematical Modelling Building 321, DK-2800 Kongens Lyngby, Denmark Phone +45 45253351, Fax +45 45882673 [email protected] www.imm.dtu.dk IMM-M.Sc.: ISSN XXXX-XXXX Summary This thesis deals with spatial indexing and models that are able to abstract the variety of existing spatial index solutions. This research involves a thorough presentation of existing dynamic spatial indexes based on R-trees, investigating abstraction models and implementing such a model in MySQL. To that end, the relevant theory is presented. A thorough study is performed on the recent and seminal works on spatial index trees and we describe their basic properties and the way search, deletion and insertion are performed on them. During this effort, we encountered details that baffled us, did not make the understanding the core concepts smooth or we thought that could be a source of confusion. We took great care in explaining in depth these details so that the current study can be a useful guide for a number of them. A selection of these models were later implemented in MySQL. We investigated the way spatial indexing is currently engineered in MySQL and we reveal how search, deletion and insertion are performed. This paves the path to the un- derstanding of our intervention and additions to MySQL's codebase. All of the code produced throughout this research was included in a patch against the RDBMS MariaDB.
    [Show full text]