ALTER DATABASE 数据库名称
SET OFFLINE
需要联机的时候
ALTER DATABASE 数据库名称
SET ONLINE关闭数据库的函数进程需要根据具体情况进行 *** 作,以下是一些常见的方法:
1 使用命令行工具:在Windows系统中,可以使用任务管理器或者命令行工具(如taskkill)来结束进程。在Linux系统中,可以使用kill命令或者pkill命令来结束进程。
2 关闭数据库连接:如果是通过程序连接到数据库并执行函数,则可以尝试关闭与数据库的连接以终止相关进程。不同编程语言和框架提供了不同的方式来关闭数据库连接,例如Java中可以调用Connectionclose()方法。
3 重启服务器:如果无法找到特定进程或者其他方法无效,则可以考虑重启服务器以强制终止所有正在运行的进程。但这种做法会导致服务停机时间较长,并且可能造成数据丢失等问题,请谨慎使用。
需要注意的是,在关闭任何一个正在运行的函数时都应该先备份好相关数据以防止数据丢失。同时也要避免误删、误关等 *** 作对正常业务造成影响。
命令:exit或者QUIT。
在Unix中,也可以按control-D键断开服务器。
连接mysql:
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL。(假设用户名、密码均为root)
命令mysql -u root -p,回车后输密码root;再回车即可;
或者直接键入命令mysql -uroot -proot回车即可;
注意:用户名前空格可有可无,但是密码前必须没有空格,否则再次输入密码。
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了。
2、连接到远程主机上的MYSQL。
假设远程主机的IP为:110110110110,用户名为root,密码为root。则键入以下命令:
mysql -h110110110110 -uroot -proot;(注:p与root之间可以不用加空格)
3、一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。
直接输入命令:mysql。
扩展资料:
增加新用户mysql命令:
格式:create user ‘用户名’@’主机地址’ identified by ‘密码’;
1、增加tom1用户 密码为 tom1,可在任何主机登录:
create user 'tom1'@'localhost' identified by 'tom1';
2、引号可省略,即:
create user tom1@localhost identified by 'tom1';
3、主机地址存在 % 时不可省略引号,即:
create user tom1@'1921681%' identified by 'tom1';
数据库角色的成员可以分为如下几类:Windows用户组或用户账户
SQL Server登录
其他角色
SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:
固定服务器
固定数据库
用户自定义
固定服务器
由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。
固定服务器角色
说 明
sysadmin
执行SQL Server中的任何动作
serveradmin
配置服务器设置
setupadmin
安装复制和管理扩展过程
securityadmin
管理登录和CREATE DATABASE的权限以及阅读审计
processadmin
管理SQL Server进程
dbcreator
创建和修改数据库
diskadmin
管理磁盘文件
下面两个系统过程用来添加或删除固定服务器角色成员:
sp_addsrvrolemember
sp_dropsrvrolemember
注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。
sa登录
sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。
注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。
固定服务器角色及其权限
在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:
sp_srvrolepermission[[@srvrolename =] 'role']
如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。
1 sysadmin
固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。
固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。
2 serveradmin
固定服务器角色serveradmin的成员可以执行如下的动作:
向该服务器角色中添加其他登录
运行dbcc pintable命令(从而使表常驻于主内存中)
运行系统过程sp_configure(以显示或更改系统选项)
运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)
使用shutdown命令关掉数据库服务器
运行系统过程sp_tableoption为用户自定义表设置选项的值
3 setupadmin
固定服务器角色setupadmin中的成员可以执行如下的动作:
向该服务器角色中添加其他登录
添加、删除或配置链接的服务器
执行一些系统过程,如sp_serveroption
4 securityadmin
固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:
向该服务器角色中添加其他登录
读取SQL Server的错误日志
运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)
5 processadmin
固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:
向该服务器角色中添加其他登录
执行KILL命令(以取消用户进程)
6 dbcreator
固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:
向该服务器角色中添加其他登录
运行CREATE DATABASE和ALTER DATABASE语句
使用系统过程sp_renamedb来修改数据库的名称
7 diskadmin
固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:
向该服务器角色中添加其他登录
运行如下系统过程:sp_ddumpdevice和sp_dropdevice。
运行DISK INIT语句
固定数据库角色
固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。下表列出了所有的固定数据库角色。
固定数据库角色
说 明
db_owner
可以执行数据库中技术所有动作的用户
db_accessadmin
可以添加、删除用户的用户
db_datareader
可以查看所有数据库中用户表内数据的用户
db_datawriter
可以添加、修改或删除所有数据库中用户表内数据的用户
db_ddladmin
可以在数据库中执行所有DDL *** 作的用户
db_securityadmin
可以管理数据库中与安全权限有关所有动作的用户
db_backoperator
可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)
db_denydatareader
不能看到数据库中任何数据的用户
db_denydatawriter
不能改变数据库中任何数据的用户
除了上表中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public,这里将首先介绍这一角色。
public角色
public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保留了默认的权限,因此是不能被删除的。
一般情况下,public角色允许用户进行如下的 *** 作:
使用某些系统过程查看并显示master数据库中的信息
执行一些不需要一些权限的语句(例如PRINT)
固定数据库角色及其权限
在数据库中,每个固定数据库角色都有其特定的权限。这就意味着对于某个数据库来说,固定数据库角色的成员的权限是有限的。使用系统过程sp_dbfixedrolepermission就可以查看每个固定数据库角色的权限。该系统过程的语法为:
sp_dbxedrolepermission [[@rolename =] 'role']
如果没有指定role的值,那么所有固定数据库角色的权限都可以显示出来。下面的几节将讨论每个固定数据库角色的权限。
1 db_owner
固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作:
向其他固定数据库角色中添加成员,或从其中删除成员
运行所有的DDL语句
运行BACKUP DATABASE和BACKUP LOG语句
使用CHECKPOINT语句显式地启动检查点进程
运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage
授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES
使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess
使用系统过程sp_rename为任何数据库对象重新命名
2 db_accessadmin
固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列 *** 作:
运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess
为Windows用户账户、Windows组和SQL Server登录添加或删除访问
3 dbdatareader
固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)
4 dbdatawriter
固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)
5 db_ddladmin
固定数据库角色db_ddladmin的成员可以进行如下的动作:
运行所有DDL语句
对任何表上授予REFERENCESE权限
使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构
使用系统过程sp_rename为任何数据库对象重命名
使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者
6 db_securityadmin
固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:
运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE)
运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember
7 db_backupoperator
固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:
运行BACKUP DATABASE和BACKUP LOG语句
用CHECKPOINT语句显式地启动检查点进程
运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage
8 db_denydatareader和db_denydatawriter
顾名思义,固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。
固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。
一 什么是oracle字符集
Oracle字符集是一个字节数据的解释的符号集合 有大小之分 有相互的包容关系 ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储 处理 检索数据 它使数据库工具 错误消息 排序次序 日期 时间 货币 数字 和日历自动适应本地化语言和平台
影响oracle数据库字符集最重要的参数是NLS_LANG参数 它的格式如下:
NLS_LANG = language_territory charset
它有三个组成部分(语言 地域和字符集) 每个成分控制了NLS子集的特性 其中:
Language 指定服务器消息的语言 territory 指定服务器的日期和数字格式 charset 指定字符集 如:AMERICAN _ AMERICA ZHS GBK
从NLS_LANG的组成我们可以看出 真正影响数据库字符集的其实是第三部分 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据 前面影响的只是提示信息是中文还是英文
二 如何查询Oracle的字符集
很多人都碰到过因为字符集不同而使数据导入失败的情况 这涉及三方面的字符集 一是oracel server端的字符集 二是oracle client端的字符集;三是dmp文件的字符集 在做数据导入的时候 需要这三个字符集都一致才能正确导入
查询oracle server端的字符集
有很多种方法可以查出oracle server端的字符集 比较直观的查询方法是以下这种:SQL>select userenv( language ) from dual;
结果类似如下:AMERICAN _ AMERICA ZHS GBK
如何查询dmp文件的字符集
用oracle的exp工具导出的dmp文件也包含了字符集信息 dmp文件的第 和第 个字节记录了dmp文件的字符集 如果dmp文件不大 比如只有几M或几十M 可以用UltraEdit打开( 进制方式) 看第 第 个字节的内容 如 然后用以下SQL查出它对应的字符集:
SQL> select nls_charset_name(to_number( xxxx )) from dual;
ZHS GBK
如果dmp文件很大 比如有 G以上(这也是最常见的情况) 用文本编辑器打开很慢或者完全打不开 可以用以下命令(在unix主机上):
cat exp dmp |od x|head |awk {print $ $ } |cut c
然后用上述SQL也可以得到它对应的字符集
查询oracle client端的字符集
这个比较简单 在windows平台下 就是注册表里面相应OracleHome的NLS_LANG 还可以在dos窗口里面自己设置 比如:
set nls_lang=AMERICAN_AMERICA ZHS GBK
这样就只影响这个窗口里面的环境变量
在unix平台下 就是环境变量NLS_LANG
$echo $NLS_LANG
AMERICAN_AMERICA ZHS GBK
如果检查的结果发现server端与client端字符集不一致 请统一修改为同server端相同的字符集
三 修改oracle的字符集
上文说过 oracle的字符集有互相的包容关系 如us ascii就是zhs gbk的子集 从us ascii到zhs gbk不会有数据解释上的问题 不会有数据丢失 在所有的字符集中utf 应该是最大 因为它基于unicode 双字节保存字符(也因此在存储空间上占用更多)
一旦数据库创建后 数据库的字符集理论上讲是不能改变的 因此 在设计和安装之初考虑使用哪一种字符集十分重要 根据Oracle的官方说明 字符集的转换是从子集到超集受支持 反之不行 如果两种字符集之间根本没有子集和超集的关系 那么字符集的转换是不受oracle支持的 对数据库server而言 错误的修改字符集将会导致很多不可测的后果 可能会严重影响数据库的正常运行 所以在修改之前一定要确认两种字符集是否存在子集和超集的关系 一般来说 除非万不得已 我们不建议修改oracle数据库server端的字符集 特别说明 我们最常用的两种字符集ZHS GBK和ZHS CGB 之间不存在子集和超集关系 因此理论上讲这两种字符集之间的相互转换不受支持
修改server端字符集(不建议使用)
在oracle 之前 可以用直接修改数据字典表props$来改变数据库的字符集 但oracle 之后 至少有三张系统表记录了数据库字符集的信息 只改props$表并不完全 可能引起严重的后果 正确的修改方法如下:
$sqlplus /nolog
SQL>conn / as sysdba;
若此时数据库服务器已启动 则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器 然后执行以下命令:
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES= ;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES= ;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET ZHS GBK;
SQL>ALTER DATABASE national CHARACTER SET ZHS GBK;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP
修改dmp文件字符集
上文说过 dmp文件的第 第 字节记录了字符集信息 因此直接修改dmp文件的第 第 字节的内容就可以 骗 过oracle的检查 这样做理论上也仅是从子集到超集可以修改 但很多情况下在没有子集和超集关系的情况下也可以修改 我们常用的一些字符集 如US ASCII WE ISO P ZHS CGB ZHS GBK基本都可以改 因为改的只是dmp文件 所以影响不大
具体的修改方法比较多 最简单的就是直接用UltraEdit修改dmp文件的第 和第 个字节 比如想将dmp文件的字符集改为ZHS GBK 可以用以下SQL查出该种字符集对应的 进制代码:
SQL> select to_char(nls_charset_id( ZHS GBK ) xxxx ) from dual;
然后将dmp文件的 字节修改为 即可
lishixinzhi/Article/program/Oracle/201311/17875
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)