如何使用命令查看数据库的命令boston数据

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在sql中使用命令行创建数据库
在sql中使用命令行创建数据库
1.建立数据库
create database ttt
NAME=yyy_DAT,
FILENAME='F:\mmm\ttt.mdf',
MAXSIZE=30MB,
FILEGROWTH=10%
NAME=ttt_LOG,
FILENAME='F:\mmm\ttt.LOG',
MAXSIZE=30MB,
FILEGROWTH=10%
2. 建立数据表
create table tyy
id int primary key identity(1,1),
&---关键字,自动编号
tname char(10) not null,--不能空
tage char(5),
tsex char(2) check(tsex
in('男','女'))default('女'),--有条件填空
tbirth date check(tbirth between '' and ''
3.插入数据
insert into tyy(tname,tage,tsex,tbirth) values
('易小小','10','男','')
4.添加字段
ALTER table tyy add tnum char(10)
alter table tyy add tmem char(100)
5.删除字段
alter table tyy drop column tnum
sql一些常用命令
一、DML—数据操纵语言SQL命令,分为:select查询、insert into插入、delete from删除、update set修改.
最复杂、存在非常多的使用方法
1、查询表中所有的数据
Select& *&
from& table_name;
2、普通条件(where、and、or)查询
*或者字段1,字段2,…
from table_name where 字段1=值1或字段2=值2…;
如查询一个范围的薪资
store_name FROM Store_Information WHERE salary & 1000
OR (salary & 500 AND salary & 275);
3、模糊条件(like)查询
*或者字段1,字段2,…
from table_name where字段1 like
%A%包含A的字符
*或者字段1,字段2,…
from table_name where字段1 like
A%;以A起头的字符
*或者字段1,字段2,…
from table_name where字段1 like
%A;以A结尾的字符
或者字段1,字段2,…
from table_name where字段1 like
'_汉字_';一个下划线,表示一个字符,共计四个字符
*或者字段1,字段2,…
from table_name where字段1 like
%表示无限个字符
4、空值条件(null)查询
*或者字段1,字段2,…
from table_name where 字段1 is
5、范围查询一
*或者字段1,字段2,…
from table_name where 字段1 in
(1,2,3,…)或者('质量','数量',…)…;-- 字段值可为数值、或字符类型
6、范围查询二
或者字段1,字段2,…
from table_name where 字段1
between 10 and 100;
*或者字段1,字段2,…
from table_name where 字段1
between '1' and
7、排序查询(order by…asc/desc 一般都是组合使用)
* FROM table_name& order by 字段1
* FROM table_name& order by 字段2
* FROM table_name& order by 字段1, 字段2,…
* FROM table_name where 字段1=数值1 order
desc, 字段2
统计记录数查询
SELECT &Count(字段1,或字段2,…)[别名a…]
FROM table_ 【一般不与其它字段一起组合,否则会报错,可在后面加别名】
【加条件“is not
null”,可过滤掉为空值数据】
SELECT &(字段1,或字段2,…)[别名a…]
FROM table_name where(字段1,或字段2,…)
SELECT &Count(字段1,或字段2,…),字段A FROM
table_name group by 字段A;
SELECT &Count(字段1,或字段2,…),字段A FROM
table_name where 字段B=数值 group
【与其它字段一起查询显示,要与组合使用,且要显示的"字段A",一定要与group
by匹配的"字段A"相同,与字段B不能相同group
by配置的字段名相同】
SELECT &sum(字段1,或字段2,…)FROM table_
sum匹配的字段,一定为数值类型。
(字段1,或字段2,…),字段A FROM
table_name group by 字段A;
SELECT &sum(字段1,或字段2,…),字段A FROM
table_name where 字段B=数值 group
【与其它字段一起查询显示,要与group
by组合使用,且要显示的"字段A",一定要与group
by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group
by配置的字段名相同】
SELECT &Max(字段1,或字段2,…)FROM table_
sum匹配的字段,一定为数值类型。
SELECT &Max(字段1,或字段2,…),字段A FROM
table_name group by 字段A;
SELECT &Max(字段1,或字段2,…),字段A FROM
table_name where 字段B=数值 group
【与其它字段一起查询显示,要与group
by组合使用,且要显示的"字段A",一定要与group
by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group
by配置的字段名相同】
SELECT &Min(字段1,或字段2,…)FROM table_
sum匹配的字段,一定为数值类型。
SELECT &Min(字段1,或字段2,…),字段A FROM
table_name group by 字段A;
SELECT &Min(字段1,或字段2,…),字段A FROM
table_name where 字段B=数值 group
【与其它字段一起查询显示,要与group
by组合使用,且要显示的"字段A",一定要与group
by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group
by配置的字段名相同】
SELECT &avg(字段1,或字段2,…)FROM table_
sum匹配的字段,一定为数值类型。
SELECT& avg(字段1,或字段2,…),字段A FROM
table_name group by 字段A;
SELECT& avg(1,或字段2,…),字段A FROM
table_name where 字段B=数值 group
【与其它字段一起查询显示,要与group
by组合使用,且要显示的"字段A",一定要与group
by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group
by配置的字段名相同】
13、having筛选组查询
那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过
$1,500。在这个情况下,我们不能使用
的指令。那要怎么办呢?很幸运地,SQL
有提供一个 HAVING
的指令,而我们就可以用这个指令来达到这个目标。
子句通常是在一个 SQL
句子的最后。
一个含有 HAVING
子句的 SQL
并不一定要包含 GROUP BY
HAVING 的语法如下:
SUM("栏位2")
BY "栏位1"
(函数条件)
select (字段1,或字段2,…)from table_name group by
&&/span&字段1,或字段2,…& having &&/span&分组条件&;
例如:查询出本次考试男女生的总成绩大于等于250分的信息
'总成绩' from
student group by sex& having
sum(score)&=250;
12、表格连接
store_name
Los Angeles
Jan-05-1999
Jan-07-1999
Los Angeles
Jan-08-1999
Jan-08-1999
store_name
Los Angeles
A1.region_name REGION, SUM()
Geography A1, Store_Information A2 --A1,A2使用到别名,更助于理解
A1.store_name = A2.
&&--关键处,存在相同的字段列
BY A1.region_name --按区域名称,进行分类
REGION& SALES
Select& a2. region_name, sum(a1.Sales )
from Store_Information a1 , Geography a2
Where& a1. store_name=a2.
store_name+&&
--"+"表示列表中的所有资料,都查取出来
by a2.region_
13、字段列表内容间的串连
CONCAT(), ||
的语法如下:
CONCAT(字符串1, 字符串2, 字符串3,...):
将字符串1、字符串2、字符串3,等字符串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字符串
CONCAT(region_name,store_name) FROM Geography
store_name = 'Boston';
Server使用+,如:加个空格+'
store_name = 'Boston';
14、SUBSTRING
中的 substring
函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的数据库中不完全一样:
SUBSTR(), SUBSTRING()
Server: SUBSTRING() 此函数不可用
最常用到的方式如下 (在这里我们用SUBSTR()为例):
SUBSTR(str,pos): 由中,选出所有从第位置开始的字符。请注意,这个语法不适用于SQL Server上。
SUBSTR(str,pos,len): 由中的第位置开始,选出接下去的个字符
假设我们有以下的表格:
region_name
store_name
Los Angeles
store_name = 'Los Angeles';
SUBSTR(store_name,2,4)
store_name = 'San Diego';
15、top查询
随机取出10条数据select top 10 * from tablename order by newid();
into…插入
1、普通常用插入
字段1, 字段2, 字段3,…)values
(数值1, 数值2, 数值3,…);
2、插入子查询结果
into table_name [(字段1, 字段2, 字段3,…)]
SELECT 语句;
--后面的select语句中,还可加相应的限制条件(如:where)
insert into [XXXXX].[dbo].[Geography_001] (regionID,region_name,store_name)
select [regionID],[region_name],[store_name]
from [XXXXX].[dbo].[Geography]
where regionID&9002;
from…删除
1、删除表中的符合某个条件的所有数据信息:
from table_name where 字段1=数值1,或字段2=数值2,…;
2、删除表中所有内容,表结构不删除,以下两种效果一样:
Delete table_
truncate table
3、完全删除表:
table table_
table_name set 1=数值1 where 字段1=数值1, 2=数值2,…;
UPDATE Store_Information SET Sales
WHERE store_name = "Los Angeles"
Date = "Jan-08-1999";
SQL查询的拓展
或 UNION& ALL
作用是将两个
语句的结果合并起来(相当于取两个SQL
语句的并集)
的语法如下:
[SQL 语句 1]
UNION [SQL 语句 2]
语句查询的字段值(可以为多个字段)内容,必须是同类型的数据。
SELECT store_name
FROM [XXXXX].[dbo].[Geography]
Store_Information
FROM [XXXXX].[dbo].[Store_Information];
如果SQL语句中为union
all ,则全部将两张表的字段值内容,查询出且包括重复的。
查询重复出现的字段值,只显示一次。
字段名1,字段名2
from 表格 order
by 字段名1
Store_Information
Los Angeles
Jan-05-1999
Jan-07-1999
Los Angeles
Jan-08-1999
Jan-08-1999
执行语句:
distinct [store_name] from
[XXXXX].[dbo].[Store_Information];
作用是将字段值都存在两个 SQL
语句中时,才查询出结果。(相当于取两个SQL
语句的交集)
语句 1]& INTERSECT& [SQL
限制是两个 SQL
语句查询的字段值(可以为多个字段)内容,必须是同类型的数据。
SELECT store_name
FROM [XXXXX].[dbo].[Geography]
intersect&
Store_Information
FROM [XXXXX].[dbo].[Store_Information];
只运用在两个 SQL
语句上。执行第一个 SQL
语句所产生的结果,如果存在第二个 SQL
语句的结果中,。执行第二个 SQL
语句所产生的结果,如果不存在第一个 SQL
语句所产生的结果内,则会被去除,不显示最后结果中
Store_Information
store_name
Los Angeles
Jan-05-1999
Jan-07-1999
Los Angeles
Jan-08-1999
Jan-08-1999
&Internet_Sales
Jan-07-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL
Date FROM Store_Information
Date FROM Internet_Sales
Jan-05-1999
Jan-08-1999
在一个 SQL
语句中放入另一个 SQL
语句。在 WHERE
子句或 HAVING
子句中插入另一个 SQL
语句时,就有一个子查询 (subquery)
子查询的作用是:1、用来连接表格。2、唯一能够连接两个表格的方式。
子查询的语法如下:
比较运算素]
(SELECT "栏位1"
FROM "表格"
WHERE [条件]);
其中,[比较运算素]可以为“=, &, &, &=, &=.”,也可以为“like”,及“and”、“or”,红色部分表示内查询。
已投稿到:&& 第 25 章
使用 Kerberos 应用程序(任务)系统管理指南:安全性服务第 25 章
使用 Kerberos 应用程序(任务)
本章适用于其系统中配置了 Kerberos 服务的人员。本章介绍如何使用提供的基于 Kerberos 的命令和服务。阅读本章中的这些命令之前,您应该对非基于 Kerberos 的版本中的这些命令比较熟悉。
由于本章适用于一般读者,因此其中包含有关票证的信息:获取、查看和销毁票证。本章还包含有关选择或更改 Kerberos 口令的信息。
以下是本章中信息的列表:
有关 Solaris Kerberos 产品的概述,请参见。
Kerberos 票证管理
本节介绍如何获取、查看和销毁票证。有关票证的介绍,请参见。
是否需要担心票证?
安装任何 SEAM 发行版或 Solaris 10 发行版后,Kerberos 便内置在 login 命令中,并且您将在登录时自动获取票证。通常,由于会将基于 Kerberos 的命令 rsh、rcp、rdist、telnet 和 rlogin 设置为将票证副本转发到其他计算机,因此您不必显式请求票证来访问这些计算机。配置中可能不包括此自动转发,但这是缺省行为。有关转发票证的更多信息,请参见和。
有关票证生命周期的信息,请参见。
创建 Kerberos 票证
通常,如果 PAM 配置正确,则会在登录时自动创建票证,并且无需执行任何特殊操作即可获取票证。但是,如果票证到期,则可能需要创建票证。另外,可能还需要使用缺省主体以外的其他主体,例如,如果使用 rlogin -l 以其他人的身份登录到计算机。
要创建票证,请使用 kinit 命令。
% /usr/bin/kinit
kinit 命令将提示您输入口令。有关 kinit 命令的完整语法,请参见
示例-创建 Kerberos 票证
本示例说明用户 jennifer 如何在自己的系统上创建票证。
Password for jennifer@ENG.EXAMPLE.COM:
&Type password&
在以下示例中,用户 david 使用 -l 选项创建了一个有效期为三个小时的票证。
% kinit -l 3h david@EXAMPLE.ORG
Password for david@EXAMPLE.ORG:
&Type password&
本示例说明用户 david 如何使用 -f 选项为其自身创建可转发票证。例如,该用户可以使用此可转发票证登录到第二个系统,然后 telnet 到第三个系统。
% kinit -f david@EXAMPLE.ORG
Password for david@EXAMPLE.ORG:
&Type password&
有关转发票证如何工作的更多信息,请参见和。
查看 Kerberos 票证
并非所有票证都相同。例如,一个票证可能是可转发票证,另一个票证则可能是以后生效的票证,而第三个票证既可能是可转发票证,又可能是以后生效的票证。使用带有 -f 选项的 klist 命令,可以查看所拥有的票证以及这些票证的属性:
% /usr/bin/klist -f
以下符号表示与每个票证关联的属性,如 klist 输出所示:
可以后生效
介绍了票证可以具有的各种属性。
示例-查看 Kerberos 票证
本示例说明用户 jennifer 拥有一个初始票证,该票证是可转发 (F) 和以后生效的 (d) 票证,但尚未经过验证 (i)。
% /usr/bin/klist -f
Ticket cache: /tmp/krb5cc_74287
Default principal: jennifer@ENG.EXAMPLE.COM
Valid starting
Service principal
09 Mar 04 15:09:51
09 Mar 04 21:09:51
nfs/EXAMPLE.SUN.COM@EXAMPLE.SUN.COM
renew until 10 Mar 04 15:12:51, Flags: Fdi
以下示例说明用户 david 拥有两个从另一台主机转发 (f) 到其主机的票证。这些票证也是可转发 (F) 票证。
% klist -f
Ticket cache: /tmp/krb5cc_74287
Default principal: david@EXAMPLE.SUN.COM
Valid starting
Service principal
07 Mar 04 06:09:51
09 Mar 04 23:33:51
host/EXAMPLE.
renew until 10 Mar 04 17:09:51, Flags: fF
Valid starting
Service principal
08 Mar 04 08:09:51
09 Mar 04 12:54:51
nfs/EXAMPLE.
renew until 10 Mar 04 15:22:51, Flags: fF
以下示例说明如何使用 -e 选项显示会话密钥和票证的加密类型。如果名称服务可以执行转换操作,则可使用 -a 选项将主机地址映射至主机名。
% klist -fea
Ticket cache: /tmp/krb5cc_74287
Default principal: david@EXAMPLE.SUN.COM
Valid starting
Service principal
07 Mar 04 06:09:51
09 Mar 04 23:33:51
krbtgt/EXAMPLE.
renew until 10 Mar 04 17:09:51, Flags: FRIA
Etype(skey, tkt): DES cbc mode with RSA-MD5, DES cbc mode with CRC-32
Addresses: client.example.com
销毁 Kerberos 票证
如果要销毁在当前会话期间获取的所有 Kerberos 票证,请使用 kdestroy 命令。该命令可销毁凭证高速缓存,从而销毁所有凭证和票证。虽然通常不必销毁凭证高速缓存,但运行 kdestroy 可减少您未登录期间凭证高速缓存遭受破坏的机会。
要销毁票证,请使用 kdestroy 命令。
% /usr/bin/kdestroy
kdestroy 命令将销毁所有票证。不能使用此命令来有选择性地销毁特定票证。
如果要离开系统而又担心入侵者会使用您的权限,则应使用 kdestroy 或用于锁定屏幕的屏幕保护程序。
Kerberos 口令管理
配置 Kerberos 服务后,您即会拥有两个口令:常规 Solaris 口令和 Kerberos 口令。可以将这两个口令设置为相同,也可以不同。
口令选择建议
口令几乎可以包括能够键入的任何字符,但 Ctrl 键和回车键除外。好口令是易于记忆而其他人不容易猜到的口令。以下是一些不合适的口令示例:
可在字典中找到的单词
任何常见名称或通俗名称
名人的姓名或字符
您的姓名或用户名的任何形式(例如:反向拼写您的姓名、姓名重复两次等)
配偶姓名、子女姓名或宠物名称
您的生日或亲戚的生日
您的社会安全号、驾照号、护照号或其他类似的身份标识号
本手册或任何其他手册中出现的任何口令样例
一个好的口令的长度至少为八个字符。此外,口令还应包含混合字符,如大小写字母、数字和标点符号。以下是一些好的口令示例(如果未出现在本手册中):
首字母缩略词,如 "I2LMHinSF"(全称为 "I too left my heart in San Francisco")
发音容易的无意义单词,如 "WumpaBun" 或 "WangDangdoodle!"
故意拼错的短语,如 "6o'cluck" 或 "RrriotGrrrlsRrrule!"
注意 & 请勿使用这些示例。手册中出现的口令是入侵者将首先尝试的口令。
如果 PAM 配置正确,则可以采用以下两种方法来更改 Kerberos 口令:
使用常见的 UNIX passwd 命令。配置 Kerberos 服务后,Solaris passwd 命令还会自动提示您输入新的 Kerberos 口令。
使用 passwd 而非 kpasswd 的优点在于可以同时设置 UNIX 口令和 Kerberos 口令。但是,在一般情况下,无需使用 passwd 同时更改这两个口令。通常,只能更改 UNIX 口令并保持 Kerberos 口令不变,反之亦然。
passwd 的行为取决于 PAM 模块的配置方式。在某些配置中,可能会要求您同时更改这两个口令。对于一些站点,必须更改 UNIX 口令,而对于其他站点,则要求更改 Kerberos 口令。
使用 kpasswd 命令。kpasswd 与 passwd 非常类似。这两个命令的一个区别是 kpasswd 仅更改 Kerberos 口令。如果要更改 UNIX 口令,则必须使用 passwd。
另一个区别是 kpasswd 可以更改非有效 UNIX 用户的 Kerberos 主体的口令。例如,david/admin 是 Kerberos 主体,但不是实际的 UNIX 用户,因此必须使用 kpasswd 而非 passwd。
更改口令后,所做更改在系统中传播需要一些时间(尤其是通过大型网络传播)。此延迟可能需要几分钟到一个小时或更长时间,具体取决于系统的设置方式。如果需要在更改口令后立刻获取新的 Kerberos 票证,请首先尝试新口令。如果新口令无效,请使用旧口令重试。
通过 Kerberos V5 协议,系统管理员可以设置允许每个用户使用的口令的条件。此类条件由为每个用户设置的策略(或缺省策略)定义。有关策略的更多信息,请参见。
例如,假定用户 jennifer 的策略(称为 jenpol)要求口令长度至少为八个字母,并且至少由两种类型的字符混合组成。这样,kpasswd 便会拒绝尝试使用 "sloth" 作为口令。
kpasswd: Changing password for jennifer@ENG.EXAMPLE.COM.
Old password:
&Jennifer types her existing password&
kpasswd: jennifer@ENG.EXAMPLE.COM's password is controlled by
the policy jenpol
which requires a minimum of 8 characters from at least 2 classes
(the five classes are lowercase, uppercase, numbers, punctuation,
and all other characters).
New password: &Jennifer types
New password (again):
&Jennifer re-types 'sloth'&
kpasswd: New password is too short.
Please choose a password which is at least 4 characters long.
在以下示例中,jennifer 使用 "slothrop49" 作为口令。由于 "slothrop49" 的长度超过八个字母,并且包含两种不同类型的字符(数字和小写字母),因此此口令符合条件。
kpasswd: Changing password for jennifer@ENG.EXAMPLE.COM.
Old password:
&Jennifer types her existing password&
kpasswd: jennifer@ENG.EXAMPLE.COM's password is controlled by
the policy jenpol
which requires a minimum of 8 characters from at least 2 classes
(the five classes are lowercase, uppercase, numbers, punctuation,
and all other characters).
New password:
&Jennifer types
'slothrop49'&
New password (again):
&Jennifer re-types 'slothrop49'&
Kerberos password changed.
示例-更改口令
在以下示例中,用户 david 使用 passwd 同时更改其 UNIX 口令和 Kerberos 口令。
Changing password for david
Enter login (NIS+) password:
&Type the current UNIX password&
New password:
&Type the new UNIX password&
Re-enter password:
&Confirm the new UNIX password&
Old KRB5 password:
&Type the current Kerberos password&
New KRB5 password:
&Type the new Kerberos password&
Re-enter new KRB5 password:
&Confirm the new Kerberos password&
请注意,passwd 需要 UNIX 口令和 Kerberos 口令。此行为由缺省配置确定。在这种情况下,用户 david 必须使用 kpasswd 将其 Kerberos 口令设置为其他内容,如下所示。
本示例说明用户 david 如何使用 kpasswd 仅更改其 Kerberos 口令。
kpasswd: Changing password for david@ENG.EXAMPLE.COM.
Old password:
&Type the current Kerberos password&
New password:
&Type the new Kerberos password&
New password (again):
&Confirm the new Kerberos password&
Kerberos password changed.
在本示例中,用户 david 更改了 Kerberos 主体 david/admin(非有效的 UNIX 用户)的口令。该用户必须使用 kpasswd。
% kpasswd david/admin
Changing password for david/admin.
Old password:
&Type the current Kerberos password&
New password:
&Type the new Kerberos password&
New password (again):
&Type the new Kerberos password&
Kerberos password changed.
授予对帐户的访问权限
如果需要授予某个用户访问权限以登录到您的帐户(以您的身份),则可以通过 Kerberos 执行此操作而不必显示您的口令,方法是将 .k5login 文件放置在起始目录中。.k5login 文件是一个列表,其中包含一个或多个与要为其授予访问权限的各用户对应的 Kerberos 主体。每个主体都必须单独占一行。
假定用户 david 在其起始目录中按如下所示保存了一个 .k5login 文件:
jennifer@ENG.EXAMPLE.COM
joe@EXAMPLE.ORG
如果用户 jennifer 和 joe 在其各自的领域中已经拥有 Kerberos 票证,则此文件允许这两个用户采用 david 的身份。例如,jennifer 可以使用 david 的身份远程登录到 david 的计算机 (boston),而不必提供 david 的口令。
使用 .k5login 文件授予对帐户的访问权限如果 david 的起始目录使用 Kerberos V5 协议从另一台(第三台)计算机挂载了 NFS,则 jennifer 必须具有可转发票证才能访问 david 的起始目录。有关使用可转发票证的示例,请参见。
如果您要通过网络登录到其他计算机,则需要在这些计算机上的 .k5login 文件中包括您自己的 Kerberos 主体。
使用 .k5login 文件比公布口令安全得多,原因如下:
您可以随时通过从 .k5login 文件中删除主体来收回访问权限。
虽然在您的起始目录的 .k5login 文件中指定的用户主体对您在该计算机(或一组计算机,例如如果通过 NFS 共享 .k5login 文件)上的帐户拥有完全访问权限,但是,所有基于 Kerberos 的服务都将根据该用户的身份而不是您的身份来授权访问。因此,jennifer 可以登录到 joe 的计算机并在其中执行任务。但是,如果该用户使用基于 Kerberos 的程序(如 ftp 或 rlogin),则将以其自身身份执行此操作。
Kerberos 会记录获取票证的用户,以便系统管理员在必要时查找在特定时间可以使用您的用户身份的人员。
使用 .k5login 文件的一种常见方法是将其放置在 root 的起始目录中,从而为列出的 Kerberos 主体提供对该计算机的 root 访问权限。此配置允许系统管理员成为本地 root,或以 root 身份远程登录,而不必公布 root 口令,并且不需要任何人通过网络键入 root 口令。
示例-使用 .k5login 文件授予对帐户的访问权限
假定 jennifer 决定以 root 身份登录到计算机 boston.example.com。由于在 boston.example.com 的 root 起始目录的 .k5login 文件中存在该用户的主体名称项,因此不必再次键入其口令。
% rlogin boston.example.com -l root -x
This rlogin session is using DES encryption for all data transmissions.
Last login: Thu Jun 20 16:20:50 from daffodil
SunOS Release 5.7 (GENERIC) #2: Tue Nov 14 18:09:31 EST 1998
boston[root]%
Kerberos 用户命令
Kerberos V5 产品是一个单点登录系统,这表示只需键入一次口令即可。Kerberos V5 程序将为您执行验证操作(并可以选择执行加密操作),因为 Kerberos 已内置在每个熟知的现有网络程序套件中。
Kerberos V5 应用程序是添加了 Kerberos 功能的现有 UNIX 网络程序的版本。
例如,使用基于 Kerberos 的程序连接到远程主机时,该程序、KDC 和远程主机将执行一组快速协商。完成这些协商后,该程序便已代表您向远程主机证明了您的身份,并且远程主机已授予您访问权限。
请注意,基于 Kerberos 的命令会首先尝试使用 Kerberos 进行验证。如果 Kerberos 验证失败,将会出现错误或尝试 UNIX 验证,具体取决于和命令一起使用的选项。有关更多详细信息,请参阅每个 Kerberos 命令手册页中的 Kerberos Security 部分。
基于 Kerberos 的命令概述
基于 Kerberos 的网络服务是一些连接到 Internet 中某个位置的其他计算机的程序。这些程序如下:
这些程序具有可透明地使用 Kerberos 票证与远程主机协商验证并选择协商加密的功能。在大多数情况下,您只会注意到不必再键入口令即可使用这些程序,因为 Kerberos 将为您提供身份证明。
Kerberos V5 网络程序包括可用于执行以下操作的选项:
将票证转发到其他主机(如果最初已获取可转发票证)。
加密在您的主机和远程主机之间传输的数据。
注 & 本节假定您已经熟悉这些程序的非 Kerberos 版本,并且将重点介绍 Kerberos V5 软件包添加的 Kerberos 功能。有关此处描述的命令的详细说明,请参阅其各自的手册页。
已将下列 Kerberos 选项添加至 ftp、rcp、rlogin、rsh 和 telnet:
尝试使用现有票证自动登录。如果 getlogin() 返回的用户名与当前用户 ID 相同,则使用该用户名。有关详细信息,请参见 telnet(1) 手册页。
将不可重新转发的票证转发到远程主机。此选项与 -F 选项互斥。在同一命令中不能同时使用这两个选项。
如果您有理由相信需要向第三台主机中其他基于 Kerberos 的服务验证您的身份,则应转发票证。例如,您可能要远程登录到另一台计算机,然后从该计算机远程登录到第三台计算机。
如果远程主机上的起始目录使用 Kerberos V5 机制挂载了 NFS,则必须使用可转发票证。否则,将无法访问起始目录。也就是说,假定您最初登录到系统 1,然后从系统 1 远程登录到您的主机(系统2),该主机从系统 3 挂载您的起始目录。在这种情况下,除非在 rlogin 中使用 -f 或 -F 选项,否则将无法访问起始目录,因为您的票证无法转发到系统 3。
缺省情况下,kinit 会获取可转发票证授予票证 (Ticket-Granting Ticket, TGT)。但是,您的配置在这方面可能会有所不同。
有关转发票证的更多信息,请参见。
将 TGT 的可重新转发副本转发到远程系统。此选项与 -f 类似,但它允许访问更多(如第四台或第五台)计算机。因此,可将 -F 选项视为 -f 选项的超集。-F 选项与 -f 选项互斥。在同一命令中不能同时使用这两个选项。
有关转发票证的更多信息,请参见。
请求指定的 realm 中的远程主机的票证,而不是使用 krb5.conf 文件来确定领域本身。
使用票证来向远程主机验证,但不自动登录。
-m mechanism
指定 /etc/gss/mech 文件中列出的要使用的 GSS-API 安全机制。缺省值为 kerberos_v5。
加密此会话。
-X auth_type
禁用 auth-type 类型的验证。
下表显示具有特定选项的命令。"X" 表示命令包含该选项。
网络命令的 Kerberos 选项
此外,ftp 还允许在其提示符下为会话设置保护级别:
将保护级别设置为 "clear"(无保护)。此保护级别是缺省级别。
将保护级别设置为 "private"。通过加密保护数据传输的保密性和完整性。但是,并非所有 Kerberos 用户都可使用保密性服务。
将保护级别设置为 "safe"。通过加密校验和保护数据传输的完整性。
也可以通过键入 protect,并后跟以上所示的任何保护级别(clear、private 或 safe),在 ftp 提示符下设置保护级别。
转发 Kerberos 票证
如中所述,某些命令允许您使用 -f 或 -F 选项转发票证。通过转发票证,可以&链接&网络事务。例如,可以远程登录到一台计算机,然后从该计算机远程登录到另一台计算机。使用 -f 选项可转发票证,而使用 -F 选项则可重新转发已转发的票证。
在 中,用户 david 使用 kinit 获取了一个不可转发票证授予票证 (Ticket-Granting Ticket, TGT)。由于该用户未指定 -f 选项,因此该票证不可转发。在方案 1 中,该用户可以远程登录到计算机 B,但不能再登录到其他计算机。在方案 2 中,由于该用户尝试转发一个不可转发票证,因此 rlogin -f 命令失败。
使用不可转发票证实际上,已设置了 Kerberos 配置文件,以便 kinit 在缺省情况下可获取可转发票证。但是,您的配置可能有所不同。为了便于说明,假定 kinit 不会获取可转发 TGT,除非使用 kinit -f 调用该命令。另请注意,kinit 不包含 -F 选项。TGT 可以是可转发,也可以是不可转发。
在 中,用户 david 使用 kinit -f 获取了可转发 TGT。在方案 3 中,由于该用户在 rlogin 中使用了可转发票证,因此可以访问计算机 C。在方案 4 中,由于票证不可重新转发,因此第二个 rlogin 失败。如方案 5 中所示,改用 -F 选项后,第二个 rlogin 将成功,并且票证可重新转发到计算机 D。
使用可转发票证示例-使用基于 Kerberos 的命令
以下示例说明基于 Kerberos 的命令的选项的工作方式。
示例-将 -a、-f 和 -x 选项用于 telnet
在本示例中,用户 david 已经登录,并且要 telnet 到计算机 denver.example.com。该用户使用 -f 选项转发其现有票证,使用 -x 选项加密会话,并使用 -a 选项自动执行登录。由于该用户不打算使用第三台主机的服务,因此可使用 -f 而非 -F。
% telnet -a -f -x denver.example.com
Trying 128.0.0.5...
Connected to denver.example.com. Escape character is '^]'.
[ Kerberos V5 accepts you as "david@eng.example.com" ]
[ Kerberos V5 accepted forwarded credentials ]
SunOS 5.9: Tue May 21 00:31:42 EDT 2004
Welcome to SunOS
请注意,david 的计算机使用 Kerberos 来向 denver.example.com 进行自我验证,并且以自己的身份自动登录。该用户具有一个加密会话(即该用户已有的票证副本),因此永远不必键入其口令。如果该用户使用了非 Kerberos 版本的 telnet,则可能会提示其输入口令,并将此口令在未加密的情况下通过网络发送。如果入侵者在此期间一直在观察网络通信流量,则可能会知道 david 的口令。
如果转发 Kerberos 票证,则 telnet(以及此处讨论的其他命令)将会在退出时销毁这些票证。
示例-使用带有 -F 选项的 rlogin
在此示例中,用户 jennifer 希望登录到自己的计算机 boston.example.com。该用户使用 -F 选项转发其现有票证,并使用 -x 选项加密会话。由于该用户在登录到 boston 后,可能希望执行需要重新转发票证的其他网络事务,因此会选择 -F 而非 -f。另外,由于该用户要转发其现有票证,因此不必键入其口令。
% rlogin boston.example.com -F -x
This rlogin session is using encryption for all transmissions.
Last login Mon May 19 15:19:49 from daffodil
SunOS Release 5.9 (GENERIC) #2 Tue Nov 14 18:09:3 EST 2003
示例-在 ftp 中设置保护级别
假定 joe 要使用 ftp 从计算机 denver.example.com 的目录 ~joe/MAIL 中获取其邮件并加密该会话。交换过程如下所示:
% ftp -f denver.example.com
Connected to denver.example.com
220 denver.example.org FTP server (Version 6.0) ready.
334 Using authentication type GSSAPI; ADAT must follow
GSSAPI accepted as authentication type
GSSAPI authentication succeeded Name (daffodil.example.org:joe)
232 GSSAPI user joe@MELPOMENE.EXAMPLE.COM is authorized as joe
230 User joe logged in.
Remote system type is UNIX.
Using BINARY mode to transfer files.
ftp& protect private
200 Protection level set to Private
ftp& cd ~joe/MAIL
250 CWD command successful.
ftp& get RMAIL
227 Entering Passive Mode (128,0,0,5,16,49)
150 Opening BINARY mode data connection for RMAIL (158336 bytes).
226 Transfer complete. 158336 bytes received in 1.9 seconds (1.4e+02 Kbytes/s)
要加密该会话,joe 需要将保护级别设置为 private。}

我要回帖

更多关于 查看数据库的命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信