首先理解什么是登录,什么是用户,什么是角色:
登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发钥匙,而这个钥匙就是“登录”。或称“登录名”,但员工只有进入大楼的权利,但却没有权限查看和使用里面的资源(比如档案柜)。如果是sysadmin或securityadmin固定服务器角色的成员,则可以创建两种类型的登录之一:标准登录(比如前面比喻中的金属钥匙)和Windows登录(比如较新型的电子出入卡)。
用户:既然员工拥有了进入大楼的钥匙,就应该拥有适当的管理性访问权,他们需要通过访问其他资源来完成工作。例如,如果打算允许财务部访问账目文件,就需要给他们一把文件柜的钥匙。员工现在有两把钥匙:一把是打开大门的钥匙,一把是打开文件柜的钥匙。
同样,一旦用户已登录到了SQL Server上,就需要允许用户访问数据库。为此,需要创建数据库用户账户,然后给这些用户账户授予权限。一旦这个过程结束,SQL Server用户就拥有了多把钥匙:一把打开大门的钥匙(登录),以及一把打开他们需要访问的每个文件柜(数据库)的钥匙。
角色:会计需要签发公司支票,这个权限可以用两种方式之一来授予。第一,可以给每名会计分别提供一本从同一账户中支取的支票簿,并授予从该支票簿中开支票的权限。在这种情况下,需要设法跟踪当月已经开出的全部支票,否则这种方法可能会造成可怕的后果。完成这项工作的最佳方法是让整个公司账户只使用一本支票簿,并给所有会计授予从这本支票簿中开支票的一个组权限。
在SQL Server中,当几个用户需要访问数据库的权限时,比较容易的方法是将所有的权限作为一个组授给他们,而不是设法分别管理每个用户。
言归正传,先用存储过程实现以上操作:
创建新登录具体语法请参考MSDN文档
--创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。
EXEC sp_addlogin 'newlogin','123456','master'
--创建用户
--创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
EXEC sp_adser 'newlogin'
--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
EXEC sp_adser 'newlogin','newuser'
--创建角色
EXEC sp_addrole 'newrole'
--下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
EXEC sp_adser 'newlogin','newuser','newrole'
--为角色newrole赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
--为角色newrole赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
--禁止角色newrole使用employees表的插入权限
DENY INSERT ON employees TO newrole
另一种创建用户和赋予角色的方式
--为登录newlogin在数据库中添加安全账户newuser
EXEC sp_grantdbaccess 'newlogin,'newuser'
--添加newuser为角色newrole的成员
EXEC sp_addrolemember 'newrole','newuser'
--数据库用户、角色、登录的删除操作
--删除当前数据库用户
EXEC sp_revokedbaccess 'newuser';
--删除数据库登录
EXEC sp_droplogin 'newlogin'
--删除数据库角色
EXEC sp_droprole 'newrole'
--从数据库角色(newrole)中删除用户(newuser)
EXEC sp_droprolemember 'newrole', 'newuser'
--用SQL代码新建登录、用户
--创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
--创建映射到凭据的登录名。
--以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
CREATE LOGIN mylogin WITH PASSWORD = '123456',
CREDENTIAL = mycredential;
--从Windows 域帐户创建登录名
--如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。
CREATE LOGIN [jack/xiangzhao] FROM WINDOWS;
--如果指定用户名,则不使用默认登录名作为该数据库用户
CREATE USER myuser FOR LOGIN mylogin
--以下示例将创建用户myuser拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION myuser;
--以下示例将创建db_role固定数据库角色拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION db_role;
② sql server 货币 字段 类型 一般用什么类型
货币的字段类型一般有int,float,money/smallmoney,decimal/numberic。
根据存储数据的精度不同选择:
int只能存储整数的钱。
money/smallmoney数据类型精确到它们所代表的货币单位的万分之一 。
decimal/numberic 可以自定义小数位和能存储的数据精度, 所以一般使用这种类型的人会多一些。
float 对货币这种需要精确值的数值不合适。
总结:
在财务方面最好实用money与decimal类型。
如果是简单的计算可以使用float类型,不过float类型在有些平台上取出数据并不是那么准确,有可能会丢失精度。所以说如果在性能稳定的平台中,开销不是很大,建议使用以上两种类型。
(2)财务上会用到的sql代码扩展阅读:
SQL数据类型:
1、bit 整型
bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off.
注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。
2、tinyint 整型
tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节。
3、smallint 整型
smallint 数据类型可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间。
4、int 整型
int 数据类型可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节。
5、decimal 精确数值型
decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。
6、numeric 精确数值型
numeric数据类型与decimal 相似。
7、smallmoney 货币型
smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一。
8、money 货币型
money数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一。
9、float 近似数值型
float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。
10、real 近似数值型
real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数。
③ 作为财务,学习SQL可以提升职业竞争力吗为什么
作为一名财务工作人员,在公司工作时,可能很多的时候涉及的都是记账、报账或其它有关金融方面的事情。说实话,工作也是极具挑战力。
不过随着公司信息化程度的增加,很多公司都使用了信息化软件来提高财务的记账、转账及账目管理等来提高财务的工作效率。
所以,现在辛苦多学点没有关系,未来你会感谢现在的自己。
④ 财务中的SQL,ERP,VBA分别是什么东西,有什么作用哪个的作用更大
ERP,全称为企业资源计划。是企业对物料、生产计划、库存财务等方面进行管理的一个软件。较有名的有国外的SAP,国产的金蝶3K和用友U8等。
SQL一般指的是SQL Server,是微软公司的一个数据库软件,部分ERP则是由SQL Server作为后台数据库支持(例如金蝶3K就是),此外还有一些是用Oracle(以前SAP是的,现在似乎用自己的数据库了)。此外,SQL还可以指一些T-SQL语句,主要用于执行数据库的查询和创建等等工作。
VBA全称为Visual Basic Application,是基于VB的一种程序语言,一般用于执行一些自定义过程,例如用Excel的录制宏即是VBA的一种。此外,Access中也可以用它来与用户进行一些交互作用(供用户查询、录入数据等等)。
总体来说,这三个是风马牛不相及。对于财务来说,操作ERP软件是基础,SQL和VBA是职业技能,用来改进工作效率的。打个不太恰当的比方,RP软件就像Excel软件,SQL和VBA类似于公式。
不用公式是不是就不能计算了呢?当然不是了。例如你可以通过命令进行筛选或者在状态栏上显示等等都可以的,甚至还可以用计算器统计好之后再填进去。只不过会公式显然会更快些完成工作罢了。
⑤ 求科目余额表SQL代码(PL\SQL代码)写法 (oracle数据库)
第一部分select 明细数据,第二部分select '合计' sum求合计,用union将结果合并。
UNION:SQL运算符
数据库 Translate-SQL 中 的运算符,将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。使用 UNION 组合两个查询的结果集的两个基本规则是:
1 、 所有查询中的列数和列的顺序必须相同。 2 、 数据类型必须兼容。
⑥ SQLSERVER 怎么用SQL语句编写财务的分级汇总语句啊
你可以新建一张表,里面就写上,自己的Id和上一级p-Id,还可以写第几层level_no(我一般不写)。如果是第1层101,它的pId为0。第2层101111它的pId就为101.第3层继续写1011112的pid 101111。有这个区分应该就容易了。再简单分下组就出来了。
⑦ 急,财务人员求SQL数据库查询关于科目余额SQL语句
楼上说的对。。按你这表就这样子写
SELECT ACCOUNT, DEBIT,CREDIT,(期初余额,DEBIT-CREDIT) AS YE FORM JDT1