novell40b.patch
netware/mysql_fix_privilege_tables.pl: Import patch novell40b.patch
This commit is contained in:
parent
dd67a1768e
commit
5de78932d1
125
netware/mysql_fix_privilege_tables.pl
Normal file
125
netware/mysql_fix_privilege_tables.pl
Normal file
@ -0,0 +1,125 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# Copyright (C) 2002 MySQL AB
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# This notice applies to changes, created by or for Novell, Inc.,
|
||||
# to preexisting works for which notices appear elsewhere in this file.
|
||||
|
||||
# Copyright (c) 2003 Novell, Inc. All Rights Reserved.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use Mysql;
|
||||
|
||||
print "MySQL Fix Privilege Tables Script\n\n";
|
||||
|
||||
print "NOTE: This script updates your privilege tables to the lastest\n";
|
||||
print " specifications!\n\n";
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# get the current root password
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
print "In order to log into MySQL to update it, we'll need the current\n";
|
||||
print "password for the root user. If you've just installed MySQL, and\n";
|
||||
print "you haven't set the root password yet, the password will be blank,\n";
|
||||
print "so you should just press enter here.\n\n";
|
||||
|
||||
print "Enter the current password for root: ";
|
||||
my $password = <STDIN>;
|
||||
chomp $password;
|
||||
print "\n";
|
||||
|
||||
my $conn = Mysql->connect("localhost", "mysql", "root", $password)
|
||||
|| die "Unable to connect to MySQL.";
|
||||
|
||||
print "OK, successfully used the password, moving on...\n\n";
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# MySQL 4.0.2
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
print "Adding new fields used by MySQL 4.0.2 to the privilege tables...\n";
|
||||
print "NOTE: You can ignore any Duplicate column errors.\n";
|
||||
$conn->query(" \
|
||||
ALTER TABLE user \
|
||||
ADD Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER alter_priv, \
|
||||
ADD Super_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Show_db_priv, \
|
||||
ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Super_priv, \
|
||||
ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Create_tmp_table_priv, \
|
||||
ADD Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Lock_tables_priv, \
|
||||
ADD Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Execute_priv, \
|
||||
ADD Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Repl_slave_priv; \
|
||||
") && $conn->query(" \
|
||||
UPDATE user SET show_db_priv=select_priv, super_priv=process_priv, execute_priv=process_priv, create_tmp_table_priv='Y', Lock_tables_priv='Y', Repl_slave_priv=file_priv, Repl_client_priv=file_priv where user<>''; \
|
||||
");
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# MySQL 4.0 Limitations
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
print "Adding new fields used by MySQL 4.0 security limitations...\n";
|
||||
|
||||
$conn->query(" \
|
||||
ALTER TABLE user \
|
||||
ADD max_questions int(11) NOT NULL AFTER x509_subject, \
|
||||
ADD max_updates int(11) unsigned NOT NULL AFTER max_questions, \
|
||||
ADD max_connections int(11) unsigned NOT NULL AFTER max_updates; \
|
||||
");
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# MySQL 4.0 DB and Host privs
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
print "Adding new fields used by MySQL 4.0 locking and temporary table security...\n";
|
||||
|
||||
$conn->query(" \
|
||||
ALTER TABLE db \
|
||||
ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, \
|
||||
ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL; \
|
||||
");
|
||||
|
||||
$conn->query(" \
|
||||
ALTER TABLE host \
|
||||
ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, \
|
||||
ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL; \
|
||||
");
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# done
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
print "\n\nAll done!\n\n";
|
||||
|
||||
print "Thanks for using MySQL!\n\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user