It must be a permission issue. Your code works fine in the SQL Server 2012 developer version. See quick test below.
I can only assume you are using SQL Server express that comes with Visual Studio and did not give the trusted user INSERT, UPDATE, DELETE permissions to the table.
Download the SQL Server Management Studio Express and start debugging your issue!
http://msdn.microsoft.com/en-us/evalcenter/hh230763
Take a look at the windows application log or SQL Server Error log to see if you are ignoring errors in your C# program. Trace the connection to the database using the profiler to make sure you are passing the INSERT.
Take a look at the security under logins / user mapping. Does the user map to the database with default schema dbo? What permission did you give them.
If they only have public, add db_datareader and db_datawriter so the can read/write to all tables.
Otherwise, GRANT them rights at the table level. But you will to do this for each table, more maintenance.
Take a look at my blog article on using SSMS to create logins/users.
Good luck
-- Code works fine!
use tempdb
go
CREATE TABLE [dbo].[si_usuario] (
[id] INT IDENTITY (1, 1) NOT NULL,
[senha] VARCHAR (100) NOT NULL,
[login] VARCHAR (100) NOT NULL,
CONSTRAINT [PK_si_usuario] PRIMARY KEY CLUSTERED ([id] ASC)
);
go
INSERT INTO si_usuario (senha, login) VALUES ('aaa', 'aaa');
go
select * from si_usuario
go